JAVA中直线与正方形的交集

JAVA中直线与正方形的交集,java,geometry,Java,Geometry,爪哇: 我在一个网格上工作,每个正方形的中心点是一个整数坐标,我在两个整数之间画一条线,需要检查它是否通过一个基于整数坐标的特定网格正方形 我看到过类似的帖子/谷歌搜索结果,但我的要基本得多,所以我想知道是否有一个简单的解决方案我不能掌握。极有可能 感谢你能给予的任何帮助 我想你是在问一条特定的线是否与一个特定的正方形相交。如果这个问题解决了,它适用于任意数量的正方形 试试这个。假设直线的方程为y=a*x+b,正方形的左下角为 坐标x1,y1,而左上角有坐标x2,y2 求点y'=a*x1+b,y

爪哇:

我在一个网格上工作,每个正方形的中心点是一个整数坐标,我在两个整数之间画一条线,需要检查它是否通过一个基于整数坐标的特定网格正方形

我看到过类似的帖子/谷歌搜索结果,但我的要基本得多,所以我想知道是否有一个简单的解决方案我不能掌握。极有可能


感谢你能给予的任何帮助

我想你是在问一条特定的线是否与一个特定的正方形相交。如果这个问题解决了,它适用于任意数量的正方形

试试这个。假设直线的方程为y=a*x+b,正方形的左下角为 坐标x1,y1,而左上角有坐标x2,y2

求点y'=a*x1+b,y=a*x2+b*进行乘法运算

然后根据y'>y或y'>y,你有一个区间[y',y]或[y,y'],比如说这个区间是[y',y]


在数学表示法中,[m,n]代表所有大于等于m的数字,最后尝试实现这一点,但遇到了一些问题:当你说正方形的左下角有坐标x1,y1,而左上角有坐标x2,y2,那肯定是x1==x2?如果是这样的话,那么y'=ax1+b==y=ax2+b对于这个方法来说是没有意义的。也许约翰·R·多纳指的是两个相反的角?