我想找到完全没有。位于三角形内部和边界上的点 如果我们给出了所有三个顶点的x和y坐标 2D笛卡尔平面。我想将三角形包围在一个矩形内 然后,找到直线方程,并逐一检查点以满足 不等式。有没有更好的计算方法来解决这个问题?
请帮帮我。
答案 0 :(得分:1)
您采用3-triange边缘向量的所有组合的交叉积。如果得到的向量方向与向量与点p的交叉乘积和向三角形点(A,B或C)之一的向量的结果不相同,则p不在三角形中。(交叉乘积将导致3D)
更详细的解释: http://www.blackpawn.com/texts/pointinpoly/default.html
答案 1 :(得分:0)
查看http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=geometry3处的 PointInPolygon 描述,以获得一个点是否在多边形中的一般测试情况的总结。由于你有一个总是凸起的三角形,这简化为(伪代码):
for point in test_points:
//infinity can just be a point outside the bounding box of the triangle
ray := line from point to infinity
intersection_points := 0
for side in triangle_sides
isect := intersection ray, side
intersection_points++ if isect
return intersection_points %2 == 1