JAVA中线与方的交点

时间:2010-12-29 02:11:40

标签: java geometry

JAVA:

我正在研究一个网格,其中每个方格的中心点是一个整数坐标,我在两个整数之间画一条线,需要检查它是否通过整数坐标的特定网格方格。

我看过类似的帖子/谷歌搜索结果,但是我的基本结果更加基本,所以我想知道是否有一个我无法理解的简单解决方案。 (最有可能)

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我想你问的是一条特定的线是否与一个特定的方格相交(如果该问题得到解决,它适用于任意数量的方格)。

试试这个。假设线有等式y = a * x + b,并且方块的左下角有 坐标(x1,y1),而左上角有坐标(x2,y2)。

找到点y'= a * x1 + b,y''= a * x2 + b(乘以“*”);

然后取决于是否'>> y''或反之亦然,你有一个区间[y',y'']或[y'',y'],比如说区间是[y',y'']。

(在数学符号中,[m,n]代表所有数字> = m,< = n。)

如果[y',y'']与[y1,y2]相交,则该行进入正方形。