Нарисуйте кривую Безье с набором точек из вектора

Мне было интересно, какой будет лучший и менее сложный способ рисования кривой Безье в C ++ с набором точек (примерно 100+ точек), которые хранятся внутри вектора. Насколько я понимаю: -Кривые Безье состоят из 4 контрольных точек, точки в середине определяют направление / касательную к кривой

Может ли один из возможных методов разбить точки на разные сегменты и по каждому сегменту определить контрольные точки и касательные?


person ixdlxi    schedule 01.02.2011    source источник


Ответы (2)


Он называется кубическим сплайном, и при поиске можно найти для него код на C ++. Я использовал бесплатный код Fortran из Numerical Recipes Online и без проблем перенес его на C #.

person John Alexiou    schedule 01.02.2011

Может ли один из возможных методов разбить точки на разные сегменты и по каждому сегменту определить контрольные точки и касательные?

Да, в основном, линейные сегменты соединяются встык, так что наклон, приближающийся к концу линейного сегмента, одинаков с обеих сторон от точки соединения. Это называется кубическим сплайном. Вы можете найти алгоритмы для этого здесь.

person ThomasMcLeod    schedule 01.02.2011