[英]Fast formula to find the coordinate of the 4th vertex of the square by three others
[英]Given three points on a tetrahedron, Find the 4th
如果您在3D空间中有一个等边三角形,其中所有边的长度均为1,则可以使用两个点来形成四面体。 一个漂浮在三角形的前面,另一个漂浮在三角形的后面。 给定三个已知顶点的坐标,您将如何计算可能的第四个顶点中的一个?
如果您可以显示如何使用Processing vector类定义来做到这一点,我将不胜感激
对三个点取平均值以得到三角形的中心:
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
(三角形的中心)
+/- ((ab) x (bc)
(三角形两侧的叉积,因此垂直于两侧)
* some constant or other)
(规则四面体的高度除以该叉积的长度,长度为1 * 1 * sin(60度)= sqrt(3)/ 2)
这可能可以简化。
[编辑:高度为sqrt(2/3),因此常数为2*sqrt(2)
]
[第二编辑:不在前三个平面中的任何第四点形成一个四面体。 ITYM是规则的四面体;-)]
由于3D从来都不是我的兴趣,我想我只能提供一种实现此目的的方法,而不是精确的坐标。
一个点,该点与三角形的质心的距离为sqrt(2/3),且在垂直于三角形所形成的平面且包含质心的直线上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.