javascript - 如何使用 Canvas 更改上下文弧的不透明度?

标签 javascript html canvas

我已经能够使用背景图像源绘制图像并将背景图像的不透明度更改为 25%,如下所示...

var context = document.getElementById('myCanvas').getContext('2d');
context.globalAlpha=.25;                

var img = new Image();
img.onload = function(){
    context.drawImage(img, 0, 0);             
}                           
img.src = 'pie_crust.png';           

我已经能够绘制单个弧线...

var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var centerX = canvas.width / 2;
var centerY = canvas.height / 2;
var radius = 100;
var startingAngle = 30 * Math.PI/180;
var endingAngle = 60 * Math.PI/180;
var counterclockwise = true;

context.arc(centerX, centerY, radius, startingAngle, endingAngle, counterclockwise);
context.lineWidth = 20;
context.strokeStyle = "black"; // line color
context.stroke(); 

但是我无法更改上下文弧的不透明度。例如,我有一个馅饼皮 (pie_crust.png)。

enter image description here

我希望用户指定两组开始和结束 Angular 。假设第一组是 (30, 60),第二组是 (135, 180),并且逆时针设置为 true。我希望这两个弧线的不透明度为 25%,剩下的饼皮的不透明度为 0%,这样生成的 Canvas 将如下所示:

enter image description here

如何使用canvas来实现这种效果?

最佳答案

您只需使用饼形 clipping paths 绘制图像即可,像这样:

context.beginPath();
context.arc(centerX, centerY, radius, Math.PI/6, Math.PI/3, true);
context.moveTo(centerX, centerY);
context.closePath();
context.clip();

关于javascript - 如何使用 Canvas 更改上下文弧的不透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9503355/

相关文章:

javascript - 如何对 Jquery 中的克隆元素应用验证?

javascript - 将鼠标悬停在图像的一个点上,文本会出现在侧面

javascript - 在 safari 中设置阴影和渐变时,canvas arc 函数会闪烁

javascript - HTML5 Canvas,更好的像素控制和更快的速度

javascript - 使用触摸事件在 HTML5 Canvas 上绘制正方形

javascript - 使用javascript将html插入div

JavaScript 数组不过滤重复项

javascript - 无法返回数组 [Google 应用程序脚本]

javascript - 如何使用javascript在<div>标签内插入&lt;input&gt;标签?

html - 使用惰性渲染时我无法将 css 文件链接到 html