0

ファンネル チャートの一部として、キャンバスに平行四辺形を描いています。平行四辺形 (漏斗のセグメント) をクリックしやすくするために、座標を保存し、マウス座標をチェックして、マウスが正しい領域にあるかどうかを確認します。これはうまく機能します。

しかし今、私は .isPointInPath() メソッドに出くわしました(4年しかかかりませんでした)。したがって、これらの座標を使用する方が高速になるかどうかは疑問です(確かに簡単です)。

1) ストロークや塗りつぶしをせずにパスを再生して見えないようにします 2) この .isPointInPath() メソッドを使用してマウスの座標を確認します

クリックが発生してチェックが開始されると、チェックするセグメントが複数ある場合があります (例: 5)。

4

1 に答える 1

0

通常、図形のストロークまたは塗りつぶしに応じて、マウス検出座標が (ピクセル完全検出の観点から) 変化する必要があるため、平行四辺形を再描画するときは、できるだけ正確にする必要があります。

そうは言っても、通常、この操作を画面外のキャンバスで行うのが最善の方法です。isPointInPath()を使用してよく言ったように、セカンダリ キャンバスを使用して平行四辺形を 1 つずつ再描画し、状態を確認できます。ただし、ポイントがキャンバスの現在のデフォルト パスにある場合は true を返し、図形の描画方法によっては、常に期待どおりに動作するとは限らないため、このメソッドには十分注意する必要があります :)

もう 1 つの解決策は、図を 1 つずつ描画し、getImageData()を使用して、マウスの座標に色があるかどうかを検出することです。これは、図にヒットしたことを意味します。ここで例を見ることができます

お役に立てれば

于 2012-08-27T09:39:16.957 に答える