html キャンバス関数を使用して作成した形状 (四分円) があります。
moveTo
LineTo
QuadraticCurveTo
形状をパーティクルに爆発させてから、それらを元に戻して円を形成するにはどうすればよいですか?
html キャンバス関数を使用して作成した形状 (四分円) があります。
moveTo
LineTo
QuadraticCurveTo
形状をパーティクルに爆発させてから、それらを元に戻して円を形成するにはどうすればよいですか?
しばらく時間がかかるので、コードを書くつもりはありません。ウェブ上で例を見つけることができると確信していますが、そのようなことを行うために知っておく必要がある理論を説明します. .
document.createElement('canvas')
ページに表示されないインメモリ キャンバスを ( を使用して) 作成します。このキャンバスは、少なくともオブジェクトと同じ大きさである必要があります。オブジェクトとまったく同じ大きさであると仮定します。これを呼び出すtempCanvas
と、tempCtx
爆発を行うには:
ctx.drawImage(tempCanvas, x, y)
ユーザーに何かが見えるようにします[20][30]
対応する の配列が必要になります。[x][y]
を取得して使用する必要がありますctx.drawImage(tempCanvas, x, y, 1, 1, newX, newY, 1, 1)
。ここで、x と y はピクセルと同じで[x][y]
あり、newX と newY はベクトルを使用して計算され、その線に沿って次の点が何であるかを見つけます。その結果、画像の各ピクセルが元のクリック ポイントから少し離れた場所に描画されます。フレームごとにこの作業を続けると、オブジェクトが爆発したように見えます。
とにかく、それは一般的な考えです。不明な点があればお知らせください。
注 1: ほとんどの場合、通常のキャンバスは爆発するオブジェクトと同じサイズにはなりません。オブジェクトが 100,100 に配置されているため、実際には 10,15 ではなく 110, 115 をクリックした可能性があります。簡単にするために、そのオフセットを省略しています。