2010-03-10 2 views
1

Немного предыстории, в настоящее время я работаю над реализацией системы рендеринга треугольника в Expression2 для создания моделей .obj.Поиск «ноги» высоты треугольника в 3D-пространстве

Одним из ограничений, которые я испытываю в настоящее время, является то, что я не могу создать многоугольники старомодным способом, скорее, мне нужно создать треугольники из Isosceles и отрезать часть его.

Моя текущая проблема в том, что я работаю над тем, как и где разместить треугольник из равнобедренной земли. (У меня есть все остальное, как угол уже разобралась)

http://img22.imageshack.us/img22/3251/trianglem.png (Игнорируйте синий треугольник)

v0, v1 и v2 3 координаты в 3D-пространстве, которые составляют нужный треугольник.

Красная линия - это линия, которая идет от v1 и встречает гипотенузу под прямым углом вдоль плоскости треугольника. Я хочу рассчитать p1, который по существу является точкой ровно на полпути между v1 и где высота соответствует гипотенузе, также известному как «нога».

Моя текущая попытка не работает, что-так всегда:

Dot = (v0-v1):dot(v0-v2) 
P1 = v0 + Dot*((v0-v2):normalized()) 

Я признателен за любую помощь. Спасибо.

ответ

0

У меня нет подсказки на языке, который вы используете. Что я понимаю, так это то, что у вас есть определенный треугольник с этими определенными строками где-то в пространстве, и вы хотите точное положение определенной точки.

Если это то, что вы хотите, я думаю, хороший подход был бы (в nonexistant языке ..):

точек = v0.x - v1.x
ру = v0.y + v1.y/2
пз = v0.z + v1.z/2

Я надеюсь, что это помогает .. извините за размещение ответ на то, что я совершенно не знаю, о, просто пытается помочь =)

+0

Язык на самом деле не имеет значения: P, математика, стоящая за проблемой, такая же. Независимо от того, что я дам ваше уравнение, спасибо. – Fascia

+0

Do'h, нет, что не работает, треугольник может быть любой ориентацией в трехмерном пространстве, поэтому значение Z v1 не будет работать. Спасибо за вашу помощь. – Fascia

+0

Хорошо, я думал, что все было в одном плане (vx.z = 0), но поскольку это не обязательно, я отредактировал его. – Marcelo

Смежные вопросы