测试一条线是否在三角形内有一个点

时间:2010-08-28 10:03:55

标签: geometry 2d line computational-geometry

如何测试线是否有一个位于三角形内(而不是边缘)的点。 (全部为2D)。

目前我在想我会这样做:

  • 定义直线,三角形的每一边为Ax + By + C = 0,并有一个xrange。
  • 检查线是否与三角形的任何线相交。
  • 如果是,请检查这不在行尾。

有更好的方法吗?

1 个答案:

答案 0 :(得分:7)

  1. 将3个点替换为线的等式。例如如果直线是4x - 3y + 2 = 0,并且三角形的顶点是(2,1),(4,3),(0,5),我们分别得到值7,9和-13。

  2. 检查所有值是否都符号相同。如果是,则该线不与三角形相交。在上面的例子中,该线与三角形相交。

    http://www.imgftw.net/img/743059947.png