Хороший вопрос%)
размер вревки это длина кривой. Для этого нам хотябы нужно ее научиться находить.
длина кривой вычисялется по фрмуле
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);
}
для вычисления длины я просто прибалял расстояния от точки до сдледущей точки аппроксимации.На выходе погрешнось зависит от количесва сегментов для апроксимации.
далее все зависит от того по каким параметрам ты хочешь построить кривую заданной длины. если анпример по трем точкам и длине так ее можно просто не дориосвывать. т.е. нкжно знать какие параметры функции построения ты быдешь передать кроме длины.