![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 223
|
Как получить угол между векторами со знаком? Т.е по правую руку, или по левую..
Добавлено через 41 минуту Решил через определитель матрицы. Сам угол получаю так: Направление через знак определителя матрицы: Если "минус", то по левую руку, если "плюс" то по правую... Последний раз редактировалось cpu; 13.02.2011 в 09:31. |
|
|||||
|
Модрон-ветеринар
|
Лучше через atan2, пример для мувиков на картинке внизу на 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); 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. |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 223
|
Цитата:
Последний раз редактировалось cpu; 13.02.2011 в 12:40. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|