1

まず第一に、私はaからaまでの距離を計算して、ポイントが線上にあるかどうかを確認できることを知ってpointlineます。これはoffset、行のクリック(を使用)を検出するために私が行うことです。

しかしその前に、私はの周りに一般的なチェックを適用したいと思いますdiagonal line。始点と終点を持つ線自体は、長方形の領域を定義します。

Pstart(sx, sy), Pend(ex, ey).

境界チェックを使用して、Point(px, py)がその内部にあるかどうかを判断できrectangleます。

sx <= px && ex >= px && sy <= px && ey >= py

ただし、これは、線が左上から右下に移動する場合にのみ適用されます。別の方向に進む場合は、アルゴリズムを変更する必要があります。線の方向に関係なく、上記の式をどのように使用できますか?

それに応じて方向を尊重する式を取得するにはどうすればよいですか?

4

2 に答える 2

3

寸法Math.min(sx, ex) <= px <= Math.max(sx, ex)についても同様に比較してください。y

于 2013-03-25T14:50:16.210 に答える
0

Line2D.ptSegDist(x1、y1、x2、y2、xP、yP)は、ポイント(xP、yP)が(x1、y1)から(x2、y2)までの線分上にある場合に0.0を返します。Line2D.ptLineDistは、無限線に対して同じことを行います。

于 2013-03-25T14:52:05.483 に答える