Способ нарисовать эквидистантную кривую - PullRequest
8 голосов
/ 07 апреля 2011

Я разместил этот вопрос на mathoverflow, но я также хочу узнать ваше мнение по этому поводу. То, что я хочу сделать, это нарисовать кривую, которая всегда находится на определенном расстоянии от нормали к поверхности данной кривой. Я знаю формулу данной кривой (кусочно-кубический сплайн). Проблема заключается в том, что расстояние отклонения больше радиуса кривой - точки зашифрованы. Кто-нибудь сталкивался с такой проблемой. Есть ли хорошее решение?

Спасибо за любые идеи,

Юлиан

ПОЗЖЕ: Эта проблема прекрасно описана мистером Волшебником ниже.

Ответы [ 2 ]

7 голосов
/ 07 апреля 2011

Думаю, у вас возникнут проблемы с определением: «... нарисуйте кривую, которая всегда находится на определенном расстоянии от нормали до поверхности данной кривой.»

Если вы рисуете серию линий внутри вогнутой кривой, в какой-то момент линия сворачивается обратно, создавая геометрическую инверсию.

Применяется к эллипсу, например:

enter image description here

3 голосов
/ 07 апреля 2011

РЕДАКТИРОВАТЬ: ПРИМЕЧАНИЕ: Этот ответ не о том, чтобы избежать угловых переносов (что является особенностью строгих эквидистантных кривых).

Согласно Википедии ,

Кривая с фиксированным смещением от заданной кривой Безье, часто называемая кривой смещения (лежащей «параллельно» исходной кривой, как смещение между рельсами на железнодорожном пути), не может быть точно сформирована кривой Безье ( кроме как в некоторых тривиальных случаях). Однако существуют эвристические методы, которые обычно дают адекватное приближение для практических целей.

Итак, есть эвристические методы, которые вы должны будете использовать, чтобы получить приближение . Есть академическая статья под названием Сравнение методов аппроксимации кривой смещения , включая сравнение 9 алгоритмов.

Если вы хотите пропустить исследование и просто найти решение, взгляните на это сообщение в блоге, описывающее реализацию алгоритма де Кастельжау . РЕДАКТИРОВАТЬ: Я должен признать, что я не уверен, как эта реализация ведет себя с резкими поворотами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...