Показать сообщение отдельно
Старый 13.02.2011, 10:23
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Лучше через atan2, пример для мувиков на картинке внизу на AS2:
Код AS1/AS2:
var delt_x1:Number = m1._x  - m0._x ;
var delt_y1:Number = m0._y  - m1._y ;
 
var delt_x2:Number = m2._x  - m0._x ;
var delt_y2:Number = m0._y  - m2._y ;
 
var angle1:Number = Math.atan2(delt_x1, delt_y1) * 180 / Math.PI ;
var angle2:Number = Math.atan2(delt_x2, delt_y2) * 180 / Math.PI ;
 
trace('angle1: ' + angle1);
trace('angle2: ' + angle2);
 
var angleDelta:Number = angle1 - angle2;
 
trace('Угол со знаком м/у вектором (m0, m1) и (m0, m2): ' + angleDelta);
Ну или компактнее:
Код AS1/AS2:
var angleDelta:Number = (Math.atan2(m1._x  - m0._x, m0._y  - m1._y) -  Math.atan2(m2._x  - m0._x, m0._y  - m2._y)) * 180 / Math.PI
trace('Угол со знаком м/у вектором (m0, m1) и (m0, m2): ' + angleDelta);
Взято положение мувиков, чтобы не брать цифры с потолка для примера.
Для угла м/у вектором (m0, m1) и (m0, m2) примера будет -70.7139673432521 градусов.

Правда, возможно я ошибся, тригоном. задачки давно решал. Тем не менее смотрите в сторону Math.atan2, эта функция дает знак угла.
Изображения
 
__________________
Идите первым!


Последний раз редактировалось mooncar; 13.02.2011 в 10:32.