xMailer
17.12.2007, 17:37
Подскажите пожалуйста, не могу сообразить, как на спирали поставить точки через одинаковые интервалы (расстояние) по окружности. Спираль рисую так:
stop();
var a:Number = 90;
var r:Number = 12;
// алгоритм - 200 шагов по спирали
_mc.lineStyle (20, "0xffffff", 100);
for (var i:Number = 1; i <= 200; i++) {
r += 0.8;
a += 6.5;
x = r * Math.cos (a * Math.PI / 180);
y = r * Math.sin (a * Math.PI / 180);
_mc.lineTo (x, y - 12);
}
play(); // в следующем кадре нужно по данному алгоритму поставить точки
вариант расстановки точек, который пытался безуспешно:
stop();
var a:Number = 90;
var r:Number = 12;
var aprev:Number = 90;
var fpoint:Number = 0;
_mc.lineStyle (20, "0xff0000", 100);
for (var i:Number = 1; i <= 200; i++) {
r += 0.8;
a += 6.5;
x = r * Math.cos (a * Math.PI / 180);
y = r * Math.sin (a * Math.PI / 180);
// Через каждые 10 градусов - точка
for (var n:Number = aprev; n < a; n++) {
if(fpoint == 10){
fpoint = 0;
x = r * Math.cos (a * Math.PI / 180);
y = r * Math.sin (a * Math.PI / 180);
_mc.moveTo (x, y - 11);
_mc.lineTo (x, y - 12);
}
fpoint++;
}
aprev = a;
}
stop();
var a:Number = 90;
var r:Number = 12;
// алгоритм - 200 шагов по спирали
_mc.lineStyle (20, "0xffffff", 100);
for (var i:Number = 1; i <= 200; i++) {
r += 0.8;
a += 6.5;
x = r * Math.cos (a * Math.PI / 180);
y = r * Math.sin (a * Math.PI / 180);
_mc.lineTo (x, y - 12);
}
play(); // в следующем кадре нужно по данному алгоритму поставить точки
вариант расстановки точек, который пытался безуспешно:
stop();
var a:Number = 90;
var r:Number = 12;
var aprev:Number = 90;
var fpoint:Number = 0;
_mc.lineStyle (20, "0xff0000", 100);
for (var i:Number = 1; i <= 200; i++) {
r += 0.8;
a += 6.5;
x = r * Math.cos (a * Math.PI / 180);
y = r * Math.sin (a * Math.PI / 180);
// Через каждые 10 градусов - точка
for (var n:Number = aprev; n < a; n++) {
if(fpoint == 10){
fpoint = 0;
x = r * Math.cos (a * Math.PI / 180);
y = r * Math.sin (a * Math.PI / 180);
_mc.moveTo (x, y - 11);
_mc.lineTo (x, y - 12);
}
fpoint++;
}
aprev = a;
}