Math 计算x/y网格上两个矩形之间的重叠?
我需要计算两个矩形在特殊x/y网格上的重叠(数量或是/否)。网格为500x500,但边和角连接(连续)。因此,499之后的下一个点再次变为0 在前面的一个问题中,我问了一种计算网格中两点之间距离的方法。这就是欧几里德距离:Math 计算x/y网格上两个矩形之间的重叠?,math,grid,coordinates,overlap,euclidean-distance,Math,Grid,Coordinates,Overlap,Euclidean Distance,我需要计算两个矩形在特殊x/y网格上的重叠(数量或是/否)。网格为500x500,但边和角连接(连续)。因此,499之后的下一个点再次变为0 在前面的一个问题中,我问了一种计算网格中两点之间距离的方法。这就是欧几里德距离: sqrt(min(|x1 - x2|, gridwidth - |x1 - x2|)^2 + min(|y1 - y2|, gridheight - |y1-y2|)^2) 如果两个矩形(由一个点(x,y)、宽度和高度定义)在此网格中重叠,那么用什么好的数学方法计算呢? 矩
sqrt(min(|x1 - x2|, gridwidth - |x1 - x2|)^2 + min(|y1 - y2|, gridheight - |y1-y2|)^2)
如果两个矩形(由一个点(x,y)、宽度和高度定义)在此网格中重叠,那么用什么好的数学方法计算呢?
矩形-1(
[x=0,y=0],w=20,h=20
)和矩形-2([x=495,y=0],w=10,h=10
)应该有重叠。重叠矩形(不是真正需要的,但是)应该是([x=0,y=0],w=5,h=10
)首先,计算每个矩形的x和y范围
(因为您有一个圆环几何体,所以请按mod gridsize进行操作)
因此,给定矩形-1,计算:
矩形-2相同:
为每个矩形创建x和y“区域”:
如果两个矩形之间的任何(两个)x和y区域具有非空交点,则矩形重叠。
这里,矩形1的(0,20)x区域和矩形2的(0,5)x区域有一个非空交点,(0,20)和(0,10)y区域也有一个非空交点。我可以告诉你如何在三维空间中进行此操作。。。它也将在二维工作,但我不知道它是否是你可以接受的。基本上,这个想法是看矩形所在的两个平面。找到这些平面的交点,然后查看使平面相交的直线是否与两个矩形相交。。。想听数学吗?我对数学很感兴趣。我明白你的意思,我可以推导出数学公式,但我不能得出它。。。2d方法对CPU功率的消耗会减少吗?CPU功率?!你可以在卡西欧手表的CPU上计算。xD这是非常简单的数学。。。让我测试一下我心中的想法。你是用一种类似C的OO语言生成的吗?当你说“矩形-1([x=0,y=0],w=20,h=20)和矩形-2([x=495,y=0],w=10,h=10)应该有重叠”时,我有点困惑。如果一个在原点,另一个在x轴495处,它们不会重叠。实际上,所有这些都在这里得到了回答:
x1 = x = 0, x2 = x + w = 20
y1 = y = 0, y2 = y + h = 20
x3 = 495, x4 = 505 mod 500 = 5
y3 = 0, y4 = 10
Reactangle-1: x-regions: (0, 20)
y-regions: (0, 20)
Rectangle-2: x-regions: (495, 500), (0, 5)
y-regions: (0, 10)