Nat*_*han 1 algorithm 3d geometry
如果在3D空间中有等边三角形,其中所有边的长度均为1,则可以使用两个点来形成四面体.一个漂浮在三角形前面,一个漂浮在它后面.给定三个已知顶点的坐标,您将如何计算可能的第四个顶点?
如果您可以使用Processing vector类定义来演示如何使用它,我将非常感激
平均你的三个点来获得三角形的中心:
center = (a + b + c) / 3
Run Code Online (Sandbox Code Playgroud)
通过取两个边的叉积来计算法向量:
normal = (c - a) x (b - a)
Run Code Online (Sandbox Code Playgroud)
规范化法线向量(使其为单位长度):
unit_normal = normal / |normal|
Run Code Online (Sandbox Code Playgroud)
通过正四面体的高度缩放法线:
scaled_normal = unit_normal * sqrt(2/3)
Run Code Online (Sandbox Code Playgroud)
现在,你的两点是:
top = center + scaled_normal
bottom = center - scaled_normal
Run Code Online (Sandbox Code Playgroud)