2010-02-15 3 views
4

В моем приложении WPF я работаю над механизмом рисования, чтобы делать аннотации поверх изображений. На данный момент у меня есть функциональность, чтобы рисовать пути, где мой рисованный путь будет состоять из собранных точек из чертежа. Более внимательно я добавляю StylusPoints в InkPresenter, когда я собираю их через событие MouseMoved. InkPresenter устанавливается как дочерний объект на холст, который затем будет содержать чертежи. Я мог бы также нарисовать LineSegment в Пути, если это не так?Передача набора точек на кривую Безье

Моя проблема с этим рисунком в том, что он не будет гладким. Поэтому я хотел бы, чтобы полученная кривая была представлена ​​как кривая Безье. Это метод, используемый, например, в Adobe Illustrator. Теперь; есть ли способ справиться с этим? Сначала построить коллекцию точек, представляющую ухабистую кривую, а затем преобразовать ее в кривую Безье, которая напоминает нарисованную кривую?

ответ

3

Если вы хотите поместить кривую в множество точек, подумайте о сплайне (из которых Безье является подмножеством).

Here is a PDF about how to fit a Bezier to four points, легко распространяется на n. Это произошло из логова гуру Дон Ланкастера, у которого есть отличный набор tutorials on Beziers.

2

Charles Petzold имеет класс CanonicalSpline в образце кода своей линейной диаграммы с шаблоном данных в статье MSDN Magazine.

Sample Code

Ключевой метод класса создает PathGeometry из множества точек.

Смежные вопросы