Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вращение клипа на заданный угол вокруг (http://www.flasher.ru/forum/showthread.php?t=95262)

Котяра 02.05.2007 12:00

Вращение клипа на заданный угол вокруг
 
Вложений: 1
собственно вот код:
Код:

///////////////////////Вращение точки////////////////////////////////
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;
        }
//////////////////////////////////////////////////////////////////////



Часовой пояс GMT +4, время: 06:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.