3

特別な x/y グリッドで 2 つの長方形が作るオーバーラップ (量またははい/いいえ) を計算する必要があります。グリッドは 500x500 ですが、辺と角はつながっています (連続しています)。したがって、499 の次のポイントは再び 0 になります。

以前の質問で、このグリッドの 2 点間の距離を計算する方法を尋ねました。これはユークリッド距離であることが判明しました。

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

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)にする必要があります。

4

1 に答える 1

3

まず、各長方形の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)

2つの長方形の間のx領域とy領域のいずれか(両方)にnull以外の交差がある場合、長方形は重なり合っています。ここで、Rectangle-1の(0、20)x領域とRectangle-2の(0、5)x領域にはヌル以外の交差があるため、(0、20)と(0、10)yもヌルではありません。 -地域。

于 2010-01-24T15:31:19.157 に答える