Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Требуется алгоритм построения кривых Безье. [D5, Win2k]


Евгений Гуков ©   (2002-10-09 21:30:00) 

Существует N точек. Через эти точки надо провести плавную кривую. Апроксимацию по какому-либо методу использовать нельзя, т.к. кривая должна точно проходить через указанные точки. Я использую алгоритм построения кривой с использованием кривых Безье (TCanvas.PolyBezier). Все работает замечательно, но я не знаю точек самой кривой и поэтому не могу правильно масштабировать график, да и к некотором участкам кривой требуется строить касательные. Поэтому не могли бы уважаемые специалисты подсказать математический алгоритм построения кривых Безье.


Asderg   (2002-10-10 10:03:00) [1]

у ВинАПИ точно есть механищмы построения безьевых кривых...
к сожалению, навскидку не вспомню :(


MBo   (2002-10-10 06:24:00) [2]

В параметрическом виде
P0,P3-конечные точки.
P1,P2-контрольные
t-параметр от 0 до 1
P(t)= P0*(1-t)^3+ P1*3*t*(1-t)^2+ P2*3*t^2*(1-t)+ P3*t^3
Или так
X(t) = ax*t^3+bx*t^2+cx*t+x0
Y(t) = ay*t^3+by*t^2+cy*t+y0,
где
cx =3(x1 - x0)
bx =3(x2 – x1) - cx
ax = x3 - x0 - bx - cx
cy =3(y1 - y0)
by =3(y2 – y1) – cy
ay = y3 - y0 – by – cy



Наверх

Титульная страница Поиск, карта сайта Написать письмо