0

ボックスをスケッチしてボックスを埋めると、さまざまなサイズのボックスが作成されることに気付きました。ヒット検出を扱う場合、これは少し頭の痛い問題です。たとえば、スケッチしている円と描画している四角形がある場合、これら 2 つがアニメーションのために交差するかどうかを知りたいとします。とにかくこのあたりはありますか?簡単な解決策は、線幅をゼロに設定することですが、それはオプションではありません。

4

1 に答える 1

1

ストロークオブジェクトの計算にlineWidthを追加する必要があります。

呼び出すfillRect(0,0,60,60)と、60x60で始まるボックスが表示され(0,0)ますが、ストロークする場合は、各辺に線幅の半分を追加する必要があります。

したがって、lineWidthを6呼び出すと、strokeRect(0,0,60,60)実際には。66x66で始まるボックスが得られます(-3,-3)

マイター処理のために計算が少し異なる場合がありますが、ほとんどのアプリケーションではそれを無視できます。

プログラムで飛行する場合としない場合がある簡単な解決策の1つは、塗りつぶされたオブジェクトごとに、fillRectとstrokeRectを呼び出すことです。オブジェクトは少し大きくなりますが、ストロークしたオブジェクトと同じサイズになります。もちろん、このアプローチの有効性は、これまでの書き方次第です。

于 2011-03-11T13:22:48.037 に答える