Единственного ответа на эту проблему не существует.
Плоскость, в которой расположен треугольник, не имеет определенного источника и не имеет определенной ориентации.
Лучшее, что вы можете сделать, это определить одно извершины как начало координат, а одно из ребер лежит вдоль оси X:
v1 = (0, 0)
Вам нужно будет вычислить векторы A
(то есть v2 - v1
) и B
(то есть v3 - v1
).
Вершина 2 будет тогда в:
v2 = (|A|, 0)
Положение вершины 3 можно определить с помощью Правило векторного перекрестного произведения , например:
A x B = |A| * |B| sin(theta)
Итак, получится A x B
, и из этого вы сможете вычислить синус угла тета между A
и B
:
sin(theta) = | A x B | / (|A| * |B|)
Тогда вершина 3 находится в координатах:
v3 = |B| (cos(theta), sin(theta))
Вы можетеиспользуйте cos(theta) = sqrt(1 - sin(theta) ^ 2)
, чтобы избежать любых обратных операций триггера.
Вы также должны увидеть, что |B| sin(theta)
это просто | A x B | / | A |