Java 我们如何找到三角形内的点数?
我想找出三角形内部和边界上的点的总数 如果我们给出了所有三个顶点的x和y坐标 二维笛卡尔平面。我想把三角形围成一个矩形 然后,找到直线方程,并逐个检查点以满足 不等式方程。有没有更好的计算方法来解决这个问题Java 我们如何找到三角形内的点数?,java,Java,我想找出三角形内部和边界上的点的总数 如果我们给出了所有三个顶点的x和y坐标 二维笛卡尔平面。我想把三角形围成一个矩形 然后,找到直线方程,并逐个检查点以满足 不等式方程。有没有更好的计算方法来解决这个问题 请帮帮我。你取3三角形边向量的所有组合的叉积。如果结果向量的方向与指向点p的向量与指向其中一个三角形点(A、B或C)的向量的叉积的结果不同,则p不在三角形中。(叉积将生成3D) 更详细的解释: 查看位于的PointInPolygon描述,了解测试点是否位于多边形中的一般情况的良好摘要。由于您
请帮帮我。你取3三角形边向量的所有组合的叉积。如果结果向量的方向与指向点p的向量与指向其中一个三角形点(A、B或C)的向量的叉积的结果不同,则p不在三角形中。(叉积将生成3D) 更详细的解释: 查看位于的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