Форум 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=110651)

Dr.XxX 06.04.2008 16:48

Движение часовой стрелки за мышкой по кругу.
 
У меня есть код:
Код:

attachMovie("arrow", "arrow", _root.getNextHighestDepth());
arrow._x = 225;
arrow._y = 220;
arrow.onEnterFrame = function() {
        angle = 180/Math.PI*(_xmouse/_ymouse);
        arrow._rotation = angle;
        ugol = "Угол="+angle;
};

Градусы показывает точно, но стрелка немного дёргается (туда-сюда), когда движется мышка + ко всему ещё конец стрелки не совпадает с мышкой.
Помогите разобраться в чём проблема.

etc 06.04.2008 18:36

Math.atan

Dr.XxX 06.04.2008 19:50

Вычисляю угол через актангенс, таже фигня...

angle = 180/Math.PI*Math.atan(_ymouse/_xmouse);

sinya 06.04.2008 20:00

atan2
Код:

this.onEnterFrame = function () {
        radians = Math.atan2 (_xmouse - aaa._x, _ymouse - aaa._y);
        aaa._rotation = -radians * 180 / Math.PI;       
}


Dr.XxX 06.04.2008 22:35

Спасибо, всё работает.
Но можете пояснить:
1)Зачем делать именно так _xmouse - aaa._x и _ymouse - aaa._y
2)И почему используется именно арктангенс, ведь есть другие тригонометрические ф-ции

etc 07.04.2008 09:59

1) Учите геометрию, на бумажке нарисуйте, в конце концов. Координаты мыши вы берете относительно всей сцены, а не центра стрелки, поэтому и не работает;
2) Потому что проще всего получить угол именно с помощью него.


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

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