Как получить высоту треугольника по средней точке - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть середина треугольника, а также у меня нет другой информации о вершине. Итак, как мне вычислить высоту треугольника с формулой средней точки?

Извините, я его редактирую. Хотя это математическая задача, но я делаю компьютерную программу. У меня была информация о вершинах, которая теряется при выполнении программы, поэтому я сохраняю только среднюю точку. Так что в потоке программы у меня есть только информация о средней точке. я вычислю высоту треугольника, если у меня есть вершина треугольника как (-0,5,0), (0,5,0), (0,0,1).

1 Ответ

1 голос
/ 05 апреля 2011

Если у вас есть все три вершины , тогда «высота» все еще не определена.Каждая из трех вершин имеет «высоту» с соответствующей противоположной стороны.Как правило, они не равны.

Чтобы получить расстояние заданной вершины 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)

Обратите внимание, что если вы переставляете вершины, вы всегда получаете то же самоедля перекрестного произведения (штрих-знак), так как это в два раза больше площади треугольника.

Затем высота изменяется обратно пропорционально длине противоположной стороны.

Так что, если хотите, вы можете найти наибольшую высоту, сначала найдя самую короткую сторону и используя ее.

Исправление : Исходное выражение для перекрестного произведения имело опечатку .Исправлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...