【发布时间】:2015-02-12 21:59:56
【问题描述】:
我有一个大三角形的点,我们称之为 a、b、c。 (a = (x, y) 等等)。
现在我想计算这个三角形包围的区域内的积分点数,所以我首先看了一下Pick定理。我考虑的第二种方法是生成一个以三角形的最大值、最小值为界的点列表,然后检查每个点是否位于三角形内。
我使用重心坐标方法来执行此操作。它可以工作,但是我的三角形非常大,我的程序基本上是跨点的蛮力。我该如何改进这个算法?
我的代码可以在这里找到:https://bpaste.net/show/58433b6e389c
【问题讨论】:
-
皮克定理出了什么问题?
-
@DavidEisenstat 好吧,一方面,Pick 的定理只适用于整数三角形,所以如果一个坐标是有理/无理点,它就会崩溃......当然,OP 没有指定什么他/她正在处理的那种三角形,但说尝试过 Pick 定理,所以我想它被假定为一个积分三角形?
标签: algorithm collision-detection counting