2016-11-25 6 views
-3

Я работаю над небольшой библиотекой геометрии javascript и должен получить угол β от своих точек A, B и C. Я попробовал, но он не вернул правильный угол.Получить угол из трех точек

Вот мой код:

(удален)

Часть скрипта в файле maths2d на линии 32.

+1

Не могли бы вы добавить код к своему вопросу? Я полагаю, никто не хочет скачивать файлы – godzsa

+0

Пожалуйста, разместите код, а не ссылку. В евклидовой плоскости есть два угла: тета и 2 * пи-тета. Их легко вычислить с использованием векторов и точечного или поперечного продукта. Сделайте поиск Google, чтобы понять, что я имею в виду. – duffymo

+0

Извините, но скрипка прослушивает, потому что я не могу опубликовать такой код. –

ответ

1

Чтобы получить угол в точке А от В до С вычислений

AB = B-A  
AC = C-A  

angleRadians = Math.atan2(AB.x*AC.x + AB.y*AC.y, AB.y*AC.x - AB.x*AC.y) 

angleDegrees = angleRadians*180/Math.Pi 

И да, есть страшные скалярные и кросс-продукты внутри. Или матрицу поворота, примененную к вектору. Чтобы понять это, вам понадобится аналитическая геометрия.

+0

Спасибо! Я не знал, что он возвращает радианов. На калькуляторе он получил степень. –

+0

На карманных калькуляторах вы можете переключаться между радианами, градусами, а иногда и gon/Neugrad. Большинство людей оставляют его в градусах, поскольку оно более интуитивно (в смысле приобретенного вкуса). Но алгоритмически/математически радианы являются естественными, поэтому по умолчанию заданы библиотеки команд/математических библиотек и оставляют преобразование в более интуитивные масштабы программисту. – LutzL

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