【问题标题】:Given three points on a tetrahedron, Find the 4th给定四面体上的三个点,找到第四个
【发布时间】:2010-12-07 01:17:14
【问题描述】:

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

如果您能通过Processing vector class definition 演示如何操作,我将不胜感激

【问题讨论】:

    标签: algorithm 3d geometry


    【解决方案1】:

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

    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
    

    【讨论】:

      【解决方案2】:

      (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 一个正则四面体;-)]

      【讨论】:

        【解决方案3】:

        既然 3D 从来不是我的兴趣所在,我想我只能提供一种方法来做到这一点,而不是提供精确的坐标。

        距离为 sqrt(2/3) 从质心 三角形并且在一条垂直线上 到由三角形形成的平面 并包含质心。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-02
          相关资源
          最近更新 更多