I have a shape (a quarter circle) that I've created using the html canvas function:
moveTo
LineTo
QuadraticCurveTo
How do I go about exploding the shape into particles and then return them to form a circle?
I have a shape (a quarter circle) that I've created using the html canvas function:
moveTo
LineTo
QuadraticCurveTo
How do I go about exploding the shape into particles and then return them to form a circle?
我不会为你编写代码,因为这需要一些时间,而且我相信你可以在网上找到示例,但我会告诉你为了做出这样的事情你需要知道的理论.
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,所以你真的点击了 110、115 而不是 10,15。为了简单起见,我省略了该偏移量。