PDA

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


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) Потому что проще всего получить угол именно с помощью него.