您可以在画布上以弧线形式绘制图像吗?

Meg*_*ron 1 html javascript canvas

您可以绘制弧线,也可以使用 javascript 在画布上绘制图像,但无论如何都可以做到吗?也就是说,无论如何都可以将图像绘制为圆弧而不是实线?

如果没有,是否有单独的方法来绘制图像?

我尝试沿着弧的点对图像进行逐像素转换,但它最终变得非常缓慢并且看起来很糟糕,因为我无法直接从 javascript 获取像素数据(或者你可以吗?我没有看到一种方式)所以对于每个像素,我需要计算沿弧线的点,绘制当前图像像素,重新获取它,将图像数据绘制到计算点,然后在画布上清除该点。

set*_*ien 5

您是否尝试过根据图像将 strokeStyle 设置为 CanvasPattern?看起来你可以做这样的事情(假设img是一个你想要绘制ctx的 HTMLImageElement并且是一个 CanvasRenderingContext2D):

var pattern = ctx.createPattern(img, "repeat");
ctx.strokeStyle = pattern;
ctx.beginPath();
ctx.arc(123, 408, 80, 0, 1.5*Math.PI, false);
ctx.stroke();
Run Code Online (Sandbox Code Playgroud)