【发布时间】:2020-05-25 02:08:42
【问题描述】:
给定平面点 p,q,r 如何判断三角形是否包含积分点?我想列出所有这些要点。
它有一个子问题:给定第四个点 s。如何判断 s 是否在三角形内?
【问题讨论】:
-
平面是一个无限大的表面。它包含无限点,其中一些
x,y,z是整数。 -
@Ripi2 您提到的问题与子问题有关,尽管不太一样。
给定平面点 p,q,r 如何判断三角形是否包含积分点?我想列出所有这些要点。
它有一个子问题:给定第四个点 s。如何判断 s 是否在三角形内?
【问题讨论】:
x,y,z 是整数。
您需要三角形光栅化。
可能的方法:按 Y 坐标对顶点进行排序,为顶点之间的每个垂直间隔确定边方程,并为该间隔中的每个整数 Y 获取左右整数点,然后填充内部点的整个水平扫描线。
例如,三角形的“左上角”边在 y 范围 3.14..17.3 中具有等式 2.2*y - x + 1.5 = 0。第一个整数 Y 是 4,代入得到10.3 - x = 0,所以最左边的整数 x 的值为 11。类似的过程为右边缘给出最右边的值(比如 p),所以我们输出点 (11,4), (12,4)...(p,4)
subproblem - 这是完全不同的问题。检索所有积分点时不需要它。
如果你真的需要它 - calculate signs of cross products 带有矢量到点的边 (AB x AP, BC x BP, CA x CP)
【讨论】: