2009-10-06 21 views

ответ

4

Перед применением acos проверьте, является ли точечный продукт отрицательным. Если ответ отрицательный, то угол тупой :)

Далее, как экоса имеет диапазон от 0 до пи, вы будете делать хорошо до тех пор, пока вы не хотите рефлекторные углов (> р)

+0

Это то, что я искал ..... Спасибо. Мне не нужен рефлекторный угол. – OliveOne

+1

Рад, что я мог помочь. –

+0

Извините, но я не смог получить полные углы ... У меня есть список точек и две внешние точки (одна - это начало, а вторая - на x). Я должен получить 0,45,90,135,180,225,270,315,360 в случае 9 баллов по кругу – OliveOne

0

Необходимо используйте как точечные, так и кросс-продукты, чтобы правильно разрешить угол. Угла между векторами и и V является

||atan2(s,c)|| 
where `s = ||u X v||` (magnitude of the cross product) 
and `c = u.v`  (dot product) 

и atan2 является 4-квадрантной обратной загар функции

и ||*|| обозначает величину (норма).

Это всегда возвращает угол между 0 и 180 градусами.

Смежные вопросы