1

プロジェクトに取り組んでおり、キャンバス上のいくつかのポイント、XY座標が定義されたパスにあるかどうかを確認する必要があります。基本的には、のようなものを使用したいのです.isPointInPath(x,y)が、ピクセルの範囲があります。私がやろうとしているのは、ポイントをチェックすることです20, 30 - 26, 30

  • これを達成するための既存の方法はありますか?
  • そうでない場合、これは私が個々のポイントをチェックする必要があることを意味しますか?
4

1 に答える 1

2

組み込み関数だけを使用して、すべてのポイントをチェックする必要があります。

終わりだけを確認することはできますが、三日月形のパス(など)は失敗します。

segment-intersects-pathアルゴリズムを実装すると(またはline-intersects-path、必要なセグメント上にないポイントを破棄すると)、状況は少し良くなります。

次に、(20, 30)との間のパスの交差を確認します(26, 30)(20, 30)これらの2つのポイントがパス内にあり、パスとの線分/セグメントの交点がゼロの場合、からまでの線全体がパス内にあることがわかり(26, 30)ます。

于 2013-03-27T01:32:05.017 に答える