【问题标题】:Check if a point (x0,y0,z0) lies inside a tetrahedron in Matlab检查点 (x0,y0,z0) 是否位于 Matlab 中的四面体内
【发布时间】:2017-02-18 23:30:13
【问题描述】:

我有一个由 4 个点 xi,yi,zi (i = 1 to 4) 定义的四面体

为了检查任意点 x0,y0,z0 是否在四面体内部,我采用体积路线,即我将其中一个点替换为 x0,y0,z0 并获得四面体的体积。我说如果所有 4 个计算的体积都是正的,那么它就在四面体中。 有更好的方法吗?

计算详情here

【问题讨论】:

    标签: matlab tetrahedra


    【解决方案1】:

    要知道一个点是否在四面体内部,最好/更稳健的方法是计算 4 个平面中每个平面的哪一侧,并将其与已知位于内部的点进行比较。

    一步一步:

    1. 计算四面体的几何中心
    2. 计算 4 个平面方程中的每一个,格式为 ax+by+cz+d=0。 (即从点计算 a、b、c、d)。
    3. 在每个平面方程 (x,y,z) 中插入四面体的几何中心,并存储结果的符号(一侧为正,另一侧为负,如果该点位于平面内,则为零)
    4. 在每个平面方程中插入所需的点。如果所有 4 个结果的符号都与几何中心相同,则它在等式内

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-30
      • 2015-10-02
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 2022-06-24
      • 1970-01-01
      相关资源
      最近更新 更多