给出四面体上的三个点,找到第四个

时间:2010-12-07 01:17:15

标签: algorithm 3d geometry

如果在3D空间中有等边三角形,其中所有边的长度均为1,则可以使用两个点来形成四面体。一个漂浮在三角形前面,一个漂浮在它后面。给定三个已知顶点的坐标,您将如何计算可能的第四个顶点?

如果你能用Processing vector class definition

展示如何做到这一点,我将非常感激

3 个答案:

答案 0 :(得分:5)

平均三个点以获得三角形的中心:

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

答案 1 :(得分:3)

(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 常规四面体; - )]

答案 2 :(得分:1)

因为3D从未引起我的兴趣,我想我只能提供一种方法来做到这一点,而不是精确的坐标。

  

位于距离的点   从中心的sqrt(2/3)   三角形和垂直线   到由三角形组成的平面   并包含质心。