PDA

Просмотр полной версии : движение по формулам!


дымок
08.12.2002, 13:49
у меня возник ворос можно ли нарисовать на экране дугу ?размножая мтариальную точку по формуле окружности! r2=x2+y2

DeliMIter
08.12.2002, 14:02
MX: lineStyle, moveTo, lineTo, curveTo
5: attachMovie, duplicateMovieClip

Вопрос: нафига?

дымок
08.12.2002, 14:28
видишь в чём дело! я рисую полукруг таким способом... получается немного не равномерно, во-первых, а, во-вторых, та часть которая движется она как бы это сказать не ровная (хотелось бы её видеть закруглённой), может быть есть какие неть другие способы рисования полу окружности?

DeliMIter
08.12.2002, 15:20
Если MX, то почитай про curveTo, строишь правильный многоугольник, описанный вокруг требуемой окружности, контрольные точки - вершины, якорные - середины сторон. Чем он многоугольнее, тем точнее окружность.

_k = Math.PI / 180;
R = 100;

lineStyle(0, 0x00, 100);

_spotx = R;
_spoty = 0;

for (var i=0; i<361; i++) {
getSpot(i);
curveTo(_lastx, _lasty, (_lastx + _spotx) / 2, (_lasty + _spoty) / 2);
}

function getSpot(value) {
_lastx = _spotx;
_lasty = _spoty;
_spotx = R * Math.cos(value * _k);
_spoty = R * Math.sin(value * _k);
}

Pietrovich
08.12.2002, 15:30
2DeliMIter
curveTo штука класная, но нифига не понятная :(
в Кореле и Иллюстраторе достаточно 4х кривых для построения идеальной окружности, а с помощью курвТу я сколько ни трахался, нифига не получилось :(

так что если мен кто-то толково объяснит как в МХе крывые безье интерпретируются, буду капец как благодарен :)

2дымок
или через кучу прямых :)

DeliMIter
08.12.2002, 15:50
Понятная, понятная :)))

Во флэше тоже требуется только 4 кривые, чтобы постороить окружность.... но их нельзя задать программно, а только в т.н. design-time. Программные курвы имеют следующий недостаток: два вектора, определяющих кривую, сходятся в одной точке (controlX, controlY), соответственно длина одного зависит от другого... что и ограничивает возможности программного рисования. Сделано это для простоты, кривая задается двумя якорными точками и контрольной. И то ты говоришь, что это сложно и непонятно. Если бы кривая задавалась четырьмя точками, то это было бы сложнее.... зато описывало бы все возможные кривые.

Pietrovich
08.12.2002, 20:12
Программные курвы имеют следующий недостаток: два вектора, определяющих кривую, сходятся в одной точке (controlX, controlY), соответственно длина одного зависит от другого... что и ограничивает возможности программного рисования. Сделано это для простоты, кривая задается двумя якорными точками и контрольной.

именно это и непонятно...
нафига через жопу делать, было бы как у людей. можно было бы нормально работать, а так получается от курвов пользы только дугу непонятную нарисовать :(
ибо если нельзя на 4х точках (==4х кривых) окружность построить, то это не курвы а какие-то прямые неправильные :)

блин. как 4 курвы некрутиполучается или ромашка или квадратик, но не окружность :(

[subway]design
08.12.2002, 22:32
то это не курвы а какие-то прямые неправильные

Безье курвы никогда не обещали быть гармоническими :)

http://astronomy.swin.edu.au/~pbourke/curves/bezier/