PDA

Просмотр полной версии : Объясните control point в curveTo


RFMitrio
17.03.2002, 21:52
Мне казалось, что curveTo строит кривую в точку anchor, проходящую через точку control. Но алгоритм его работы другой, кривая через контрол поинт реально не проходит, а лишь ее форма определяется положением контрольной точки. Плиз, знающие алгоритмы Бертье или кого там надо ( не знаю :) :) ), поясните ( желательно, в форме уравнения ), как строится данная кривая. По каким точкам делается интерполяция и как?
---
спасибо!

Хрюндик
18.03.2002, 07:08
да, и мне тоже, плиз! я делал типа теста - регулируемык все эти параметры, все равно нифига не понял :(...

Nox Noctis
18.03.2002, 17:49
yeeehaaw :cool:
разобрался...
все на самом деле совсем нехитро :p

кривая выходит из точки, с которой начинается рисование (заданной при помощи moveTo)

всего - три контрольных точки:
1. (controlX, controlY)
2. (anchorX, anchorY)
3. 'стартовая'

кривая строится из рассчета:
1. 'стартовая' точка принадлежит кривой
2. точка (anchorX, anchorY) принадлежит кривой
3. прямая, проведенная через 'стартовую' точку и (controlX, controlY) является касательной к кривой
4. прямая, проведенная через (anchorX, anchorY) и (controlX, controlY) является касательной к кривой

дешево и сердито :p ;)

вот примерчик :) :)

Nox Noctis
18.03.2002, 18:36
ну, что... учитывая вышенаписанное, никто не хочет сделать что нибудь
подобное (http://astronomy.swin.edu.au/~pbourke/curves/chrysanthemum/)
или
подобное (http://astronomy.swin.edu.au/~pbourke/curves/butterfly/)
на флэше ?

:D :D :D

Nox Noctis
18.03.2002, 23:47
хе-хе... у меня там в примерчике ляп... ничего серьезного - просто три лишних строчки кода :p

вобщем увидите что-нибудь вроде

TextField.addListener(ax);
TextField.addListener(cx);
TextField.addListener(x);

знайте, что это плод моего воспаленного воображения :D