Учитывая три точки на тетраэдре, найти 4-й - PullRequest
1 голос
/ 07 декабря 2010

Если у вас есть равносторонний треугольник в трехмерном пространстве, где все стороны имеют длину 1, есть две точки, которые вы можете использовать для формирования тетраэдра.Один плывет перед треугольником, а другой за ним.Учитывая координаты трех известных вершин, как бы вы вычислили одну из возможных четвертых вершин?

Я был бы очень признателен, если бы вы могли показать, как это сделать, с помощью определения класса векторов Processing

Ответы [ 3 ]

5 голосов
/ 07 декабря 2010

Среднее количество ваших трех точек, чтобы получить центр треугольника:

center = (a + b + c) / 3

Рассчитайте вектор нормали, взяв перекрестное произведение двух сторон:

normal = (c - a) x (b - a)

Нормализовать вектор нормали (сделайте его единичной длины):

unit_normal = normal / |normal|

Масштаб нормали по высоте правильного тетраэдра:

scaled_normal = unit_normal * sqrt(2/3)

Теперь ваши две точки:

top = center + scaled_normal
bottom = center - scaled_normal
3 голосов
/ 07 декабря 2010

(a + b + c)/3 (центр треугольника)

+/- ((a-b) x (b-c) (перекрестное произведение двух сторон треугольника, следовательно, перпендикулярно обеим)

* some constant or other) (высотаобычный тетраэдр, деленный на длину этого перекрестного произведения, длина которого равна 1 * 1 * sin (60 градусов) = sqrt (3) / 2)

Это, вероятно, можно упростить.

[Редактировать: высота равна sqrt (2/3), поэтому константа равна 2*sqrt(2)]

[Второе редактирование: любая четвертая точка, не находящаяся в плоскости первых трех, образует тетраэдр.ITYM a обычный тетраэдр; -)]

1 голос
/ 07 декабря 2010

Поскольку 3D никогда не интересовало меня, я думаю, что могу предоставить только способ сделать это, а не точные координаты.

Точка, которая находится на расстоянии sqrt (2 /3) от центроида треугольника и по линии, перпендикулярной плоскости, образованной треугольником и содержащей центроид.

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