Небольшая предыстория, в настоящее время я работаю над реализацией системы рендеринга треугольников в Expression2 для создания моделей .obj.
Одно из ограничений, с которыми я сейчас сталкиваюсь, заключается в том, что я не могу создавать полигоны старомодным способом, скорее, мне приходится создавать равнобедренные треугольники и отрезать их часть.
Моя текущая проблема заключается в том, что я работаю над тем, как и где разместить равнобедренный треугольник. (У меня все остальное как угол уже разобрано)
http://img22.imageshack.us/img22/3251/trianglem.png
(Игнорировать синий треугольник)
v0, v1 и v2 - это 3 координаты в трехмерном пространстве, которые составляют желаемый треугольник.
Красная линия - это линия, которая идет от v1 и встречает гипотенузу под прямым углом вдоль плоскости треугольника. Я хочу вычислить p1, который, по сути, является точкой, находящейся точно на полпути между v1 и где высота соответствует гипотенузе, то есть «ноге».
Моя текущая попытка не работает, как никогда:
Dot = (v0-v1):dot(v0-v2)
P1 = v0 + Dot*((v0-v2):normalized())
Я ценю любую помощь. Спасибо.