确定两个3D(共面)三角形的所有交点

时间:2015-07-01 13:14:19

标签: java 2d intersection

我正在尝试确定两个3D但共面三角形相交的所有点。我找到了检测三角形是否相交的方法,但我真正需要的是交叉点发生的实际点。下面我展示了一些这种情况。 另外,我将用Java编写这个,但我确信只要我理解数学,我就可以转换另一种语言!

我知道所有的顶点,但就是这样! 编辑澄清。

谢谢, 迈克尔

https://www.dropbox.com/s/yoszrlfqbx3usrf/cases.png?dl=0

1 个答案:

答案 0 :(得分:0)

  1. 如果你没有飞机的等式,你需要计算它。

  2. 暂时忽略z轴(除非这会使所有点都落在同一条线上,在这种情况下忽略另一个轴:)

  3. 找到第一个三角形的每个边缘和另一个三角形的每个边缘的交点

  4. 将交叉点插回飞机的等式中以恢复z

  5. 步骤3的

    :来自line line intersection wikipedia article determinant

    丢弃任何不落在两边的交叉点

    这是执行第3步的js片段

    function remove_sticky_class($classes) {
        $classes = array_diff($classes, array("sticky"));
        $classes[] = 'wp-sticky';
        return $classes;
    }
    add_filter('post_class','remove_sticky_class');