gpt4 book ai didi

math - 计算 x/y 网格上两个矩形之间的重叠?

转载 作者:行者123 更新时间:2023-12-05 00:46:22 25 4
gpt4 key购买 nike

我需要计算两个矩形在特殊 x/y 网格上的重叠(数量或是/否)。网格为 500x500,但边和角连接(连续)。所以499之后的下一个点又变成了0。

在上一个问题中,我询问了一种计算此网格中两点之间距离的方法。这就是欧氏距离:

sqrt(min(|x1 - x2|, gridwidth - |x1 - x2|)^2 + min(|y1 - y2|, gridheight - |y1-y2|)^2)

如果两个矩形(由点 (x,y)、宽度和高度定义)在此网格中重叠,那么计算的良好数学方法是什么?

Rectangle-1 ([x=0,y=0], w=20, h=20) 和 Rectangle-2 ([x=495,y= 0], w=10, h=10) 应该有重叠。重叠矩形(不是真正需要但)应该是 ([x=0,y=0], w=5, h=10)

最佳答案

首先,计算每个矩形的 x 和 y 范围(因为你有一个环面几何体,所以它会修改网格大小)。

因此,给定您的 Rectangle-1,计算:

x1 = x = 0, x2 = x + w = 20
y1 = y = 0, y2 = y + h = 20

与 Rectangle-2 相同:

x3 = 495, x4 = 505 mod 500 = 5
y3 = 0, y4 = 10

为每个矩形创建 x 和 y “区域”:

Reactangle-1: x-regions: (0, 20)
y-regions: (0, 20)

Rectangle-2: x-regions: (495, 500), (0, 5)
y-regions: (0, 10)

如果两个矩形之间的任何(两个)x 和 y 区域具有非空交点,则您的矩形重叠。这里 Rectangle-1 的 (0, 20) x 区域和 Rectangle-2 的 (0, 5) x 区域具有非空交集,(0, 20) 和 (0, 10) y 也是如此-地区。

关于math - 计算 x/y 网格上两个矩形之间的重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2127419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com