![]() |
|
||||||||||
|
|||||
|
Хороший вопрос%)
размер вревки это длина кривой. Для этого нам хотябы нужно ее научиться находить. длина кривой вычисялется по фрмуле http://ru.wikipedia.org/wiki/%D0%94%...B2%D0%BE%D0%B9 далее смотрим по какой формуле мы строим кривую если это бикубический сплайн(кривая безье) то есть топик http://algolist.manual.ru/forum/show...036/page//vc/1 во флеше используется для пострениея кривых http://people.nnov.ru/fractal/Splines/Bezier.htm вот код для флеша
// quadratic bezier functions
function B1 (t) {
return (t*t);
}
function B2 (t) {
return (2*t*(1-t));
}
function B3 (t) {
return ((1-t)*(1-t));
}
// draw spline routine : called from RedrawClip
function DrawSpline () {
count = 0;
// change this for smooth line
detailBias = 1/23;
level = 1;
do {
x = cP1._x*B1(count)+cP2._x*B2(count)+cP3._x*B3(count);
y = cP1._y*B1(count)+cP2._y*B2(count)+cP3._y*B3(count);
if (level>1) {
attachMovie("line", "line"+level, level+10);
_root["line"+level]._x = x;
_root["line"+level]._y = y;
_root["line"+level]._rotation = Math.atan2(yold-y, xold-x)*180/(Math.PI);
_root["line"+level]._xscale = _root["line"+level]._yscale = Math.sqrt((xold-x)*(xold-x)+(yold-y)*(yold-y));
}
yold = y;
xold = x;
++level;
count += detailBias;
} while (count<=1);
}
// main init : put 3 control point to stage
for (i=1; i<=3; i++) {
attachMovie("cdot", "cP"+i, i);
_root["cP"+i]._x = random(540);
_root["cP"+i]._y = random(400);
}
далее все зависит от того по каким параметрам ты хочешь построить кривую заданной длины. если анпример по трем точкам и длине так ее можно просто не дориосвывать. т.е. нкжно знать какие параметры функции построения ты быдешь передать кроме длины. Последний раз редактировалось F_Flash; 24.07.2006 в 16:06. |
![]() |
Часовой пояс GMT +4, время: 09:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|