我正在尝试找到严格位于边界内的格点数。我知道皮克定理是
A = i + b/2 - 1
其中A表示多边形面积,i表示位于多边形内部的格点数目,b表示多边形周长上的格点数目。
使用Shoelace公式可以很容易地求出多边形的面积,但我不确定如何获取边界上的点。
我不太确定在哪里可以找到相关资源,所以我也希望提供相关链接。
多美好的问题啊...
因为您提到了Pick定理,我会假设所有顶点都有整数坐标。
您的问题归结为确定从(x1, y1)到(x2, y2)的线段上有多少个格点。由于答案在整数平移下保持不变,因此我们可以将其简化为确定任意x和y的线段从(0, 0)到(x, y)上有多少个格点。
如果x=0或y=0,则答案是1D且平凡(即x+1或y+1)。
否则,答案是gcd(x,y)+1。您可以通过展示(a)任何位于(0,0)和(x,y)之间的格点都必须是"最小"格点的倍数;以及(b)任何格点必须具有(x,y)的因子坐标来证明这一点。
最后,在绕行多边形时要小心不要重复计算顶点。