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