PDA

Просмотр полной версии : Вращение клипа на заданный угол вокруг


Котяра
02.05.2007, 12:00
собственно вот код:
///////////////////////Вращение точки////////////////////////////////
function RotatateAboutCenter(deg:Number,dot:MovieClip)
{ //вращение мувика вокруг центра на угол альфа.
trace ("rotat");
var alpha=(deg/180)*Math.PI;
var x1=dot._x;
var y1=-dot._y;// т.к. во flash y=-y
var r=Math.sqrt(x1*x1+y1*y1);
var beta=Math.asin(x1/r);
var deg2=(beta/Math.PI)*180;
dot._x=r*Math.sin(alpha+beta);
dot._y=r*Math.cos(alpha+beta);
trace (deg+" + "+deg2+" = "+Number(deg+deg2));
}
//////////////////////////////////////////////////////////////////////
То ли, я забыл тригонометрию, то ли..(Больше на ум ничего не приходит)
Косяк в том, что одну половину круга вращается нормально а потом (через 180 градусов) глюкает.
исходник здесь:17157
Глюки наверное изза отражения оси y во флэш ( моск уже кипит)

Котяра
02.05.2007, 13:00
Спасибо всем)) докумекал сам
///////////////////////Вращение точки////////////////////////////////
function RotatateAboutCenter(deg:Number,dot:MovieClip)
{ //вращение мувика вокруг центра по часовой на угол deg.
var radAngle=(deg/180)*Math.PI;
var x = Math.cos (radAngle) * dot._x - Math.sin (radAngle) * dot._y;
var y = Math.sin (radAngle) * dot._x + Math.cos (radAngle) * dot._y;
dot._x=x;
dot._y=y;
}
//////////////////////////////////////////////////////////////////////