У меня есть треугольник (A, B, C), и я пытаюсь найти угол между каждой парой трех точек.
Проблема заключается в том, что алгоритмы, которые я могу найти в Интернете, предназначены для определения угла между векторами. Используя векторы, я вычислил бы угол между вектором, который идет от (0, 0) до точки I, и это не дает мне углов внутри треугольника.
ОК, здесь некоторый код в Python после метода на странице Википедии и после вычитания значений:
import numpy as np
points = np.array([[343.8998, 168.1526], [351.2377, 173.7503], [353.531, 182.72]])
A = points[2] - points[0]
B = points[1] - points[0]
C = points[2] - points[1]
for e1, e2 in ((A, B), (A, C), (B, C)):
num = np.dot(e1, e2)
denom = np.linalg.norm(e1) * np.linalg.norm(e2)
print np.arccos(num/denom) * 180
Это дает мне 60.2912487814, 60.0951900475 и 120.386438829, так что я делаю неправильно?