Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们如何找到三角形内的点数?_Java - Fatal编程技术网

Java 我们如何找到三角形内的点数?

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

我想找出三角形内部和边界上的点的总数 如果我们给出了所有三个顶点的x和y坐标 二维笛卡尔平面。我想把三角形围成一个矩形 然后,找到直线方程,并逐个检查点以满足 不等式方程。有没有更好的计算方法来解决这个问题


请帮帮我。

你取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