Если у вас есть все три вершины , тогда «высота» все еще не определена.Каждая из трех вершин имеет «высоту» с соответствующей противоположной стороны.Как правило, они не равны.
Чтобы получить расстояние заданной вершины c
с противоположной стороны (a, b), используйте перекрестные произведения:
Определите
a = (ax, ay)
b = (bx, by)
c = (cx, cy)
Вычислить:
bMinusA == b-a == (bMinusAx, bMinusAy)
= (bx - ax, by - ay)
cMinusA == c-a == (cMinusAx, cMinusAy)
= (cx - ax, cy - ay)
Вычислить:
bMinusCcrossCMinusA == |(b-a)^(c-a)|
= abs(bMinusAx* cMinusAy - bMinusAy*cMinusAx)
Тогда:
heightCfromAB = bMinusCcrossCMinusA/ length(bMinusA)
= bMinusCrosscMinusA/ sqrt( bMinusAx*bMinusAx+ bMinusAy* bMinusAy)
Обратите внимание, что если вы переставляете вершины, вы всегда получаете то же самоедля перекрестного произведения (штрих-знак), так как это в два раза больше площади треугольника.
Затем высота изменяется обратно пропорционально длине противоположной стороны.
Так что, если хотите, вы можете найти наибольшую высоту, сначала найдя самую короткую сторону и используя ее.
Исправление : Исходное выражение для перекрестного произведения имело опечатку .Исправлено.