2

x1、y1 ...などの4つの領域座標があります。もう1つの位置x0、y0があります。

自分の座標が選択したエリアにあるかどうかを確認するには?

エリアとポイントの座標

4

2 に答える 2

2

(x0、y0)が(x1、y1)と(x2、y2)を通る線の「下」にあることを確認する方法を説明します。基本的に、ベクトル(x0-x1、y0-y1)が(x2-x1、y2-y1)の「右側」を指すようにする必要があります。これは、マトリックスが

x0-x1      y0-y1

x2-x1      y2-y1

負の行列式があります。だからあなたの状態は

(x0-x1)(y2-y1) < (y0-y1)(x2-x1).

エリアの境界となる線に対して、このような条件が発生します。

于 2013-01-02T10:18:36.937 に答える
1

させて

A = {x1, y1}
B = {x2, y2}
C = {x3, x3}
D = {x4, x4}

まず、点が多項式を形成し、直線上にないことを確認します。direction(AB) != direction(AC) != direction(AD)これは、AB、AC、AD が方向ベクトルである場所を比較することで実行できます。

特定の点P = {x0, y0}がポリゴン内にあることを確認ABCDするには、それを確認するだけで十分ですsign(AC X AP) == sign(CD X CP) == sign(DB X DP) == sign(BA X BP)

AC: Directional vector A -> C
AP: Directional vector A -> P
.
. so on!
.
X: Cross product
sign: sign of cross product (+ or -)

大きさではなく方向の符号を比較することだけが必要です。

于 2013-01-02T10:26:39.347 に答える