長方形の 4 つの隅すべての x/y 座標と別の x/y 座標が与えられた場合、左上が 0,0 の場合、点が長方形内にあるかどうかを簡単に判断できます。
しかし、座標が負になる緯度/経度の場合はどうなるでしょうか (添付を参照してください)。この場合に有効な式はありますか?
長方形の 4 つの隅すべての x/y 座標と別の x/y 座標が与えられた場合、左上が 0,0 の場合、点が長方形内にあるかどうかを簡単に判断できます。
しかし、座標が負になる緯度/経度の場合はどうなるでしょうか (添付を参照してください)。この場合に有効な式はありますか?
数学的には、不等式を使用してそれを判断できます。
編集: 例を実行しているとき、座標を (x,y) ではなく逆形式 (y,x) にしていることに気付きました。私の例では (x,y) 形式を使用しているため、説明を簡単にするために順序を逆にしています。
A = (-130,10) B = (-100,20) C = (-125,-5) D = (-100,5) としましょう
長方形の辺から不等式を作成します。
if( (x,y) < AB && (x,y) > AC && (x,y) > CD && (x,y) < BD) then
(x,y) belongs to rectangle ABCD
end if
すべての不等式が真の場合、ポイントは長方形に属します
具体例:
AB はセグメントを表しますが、次の式で表すことができます: y = ax + b
a (ポイント A ではなく式の勾配) を決定するには、次の差を取得します。
(Ay - By) / (Ax - Bx)
Ay は点 A の Y 成分を意味し、その場合は 10 です
その式は私たちに与えます
(10 - 20) / (-130 - -100) = -10 / -30 = 1/3
今、私たちは持っています
y = x/3 + b
ここで b を決定します。点 A と B の両方がその式に属していることがわかります。したがって、それらのいずれかを使用して、式の x、y 値を置き換えます。ポイント B を見てみましょう:
20 = -100/3 + b
b を分離すると、次のようになります。
b = -100 / 60 = -10/6
私たちは今持っています
y = x/3 - (6/10)
したがって、ポイント Z (10, 15) がレタングルに属しているかどうかを判断したい場合は、まず次のことを確認します。
y > x/3 - (10/6)
次に、 Z(10, 15) の場合:
15 > 10/3 - (10/6)
15 > 10/6
15 > 1.66 is true
したがって、このエッジの条件が満たされます。各エッジに対してこれと同じロジックが必要です。
> または < を使用するかどうかを判断するには、特定の x 値で、点の y 値が長方形のエッジよりも大きいか小さいかを判断する必要があることに注意してください。
ポイントを厳密に長方形の内側に配置する場合は、< と > を使用できます。<= および >= は、長方形の端にある点が長方形にも属している場合です。あなたが決める。
私の説明が明確であることを願っています。ご不明な点がございましたら、お気軽にお問い合わせください。