7

Path2D直線で構成される閉じていない形状を表すを構築しました。

ここに画像の説明を入力

マウスがクリックされ、マウスポインターがパスの近く (数ピクセル以内) にあることを検出できるようにしたいと考えています。このcontains方法を使用しても、アルゴリズムは閉じていない形状を暗黙的に閉じたものとして処理するため (つまり、始点と終点の間に直線を描くことによって) 機能しません。

これを達成するための別のメカニズムを知っている人はいますか?

4

1 に答える 1

10
  1. BasicStroke を作成します (幅はピクセル距離の許容範囲を制御します)
  2. それを使用して描画しないでください。その createStrokedShape メソッドのみを使用して、シェイプから 2 つ目のシェイプを作成してください。この 2 番目の形状は、BasicStroke で最初の形状を描画した場合に塗りつぶされる形状の輪郭を表します。
  3. この 2 番目の形状の contains メソッドを使用します

Stroke.createStrokedShape API ドキュメントから:

Stroke インターフェイスを実装するオブジェクトによって定義された規則に従って Shape がストロークされるときに、描画される領域を囲むアウトライン Shape を返します。

于 2012-08-22T09:03:05.610 に答える