【发布时间】:2010-12-07 01:17:14
【问题描述】:
如果您在 3D 空间中有一个等边三角形,其中所有边的长度均为 1,那么您可以使用两个点来形成一个四面体。一个漂浮在三角形前面,一个漂浮在它后面。给定三个已知顶点的坐标,你将如何计算可能的第四个顶点?
如果您能通过Processing vector class definition 演示如何操作,我将不胜感激
【问题讨论】:
如果您在 3D 空间中有一个等边三角形,其中所有边的长度均为 1,那么您可以使用两个点来形成一个四面体。一个漂浮在三角形前面,一个漂浮在它后面。给定三个已知顶点的坐标,你将如何计算可能的第四个顶点?
如果您能通过Processing vector class definition 演示如何操作,我将不胜感激
【问题讨论】:
平均三个点以获得三角形的中心:
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
【讨论】:
(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 一个正则四面体;-)]
【讨论】:
既然 3D 从来不是我的兴趣所在,我想我只能提供一种方法来做到这一点,而不是提供精确的坐标。
距离为 sqrt(2/3) 从质心 三角形并且在一条垂直线上 到由三角形形成的平面 并包含质心。
【讨论】: