首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5 canvas - fillStyle不适用于

HTML5 canvas - fillStyle不适用于
EN

Stack Overflow用户
提问于 2016-03-11 18:31:07
回答 1查看 677关注 0票数 0

我试着做一个圆弧,让它有两条线,这两条线用两条弧连接在一起(分别连接线的顶部和底部)

https://jsfiddle.net/AnuragSinha/94d5gy6u/1/

代码语言:javascript
复制
    ctx = document.getElementById('canvas').getContext('2d');
    this.max = 100;
    this.min = 0;
    var start = 0;
    var end = 100;
    this.radius=100;
    ctx.beginPath();
    var startAngle = 3/8*2*Math.PI + ((3/4*2*Math.PI)/(this.max - this.min) * start);
    var endAngle = (3/8*2*Math.PI + ((3/4*2*Math.PI)/(this.max - this.min) * end));
    var r = this.radius;
    var x1 = r - (r-5)* Math.cos(Math.PI - startAngle);
    var y1 = r + (r-5)* Math.sin(Math.PI - startAngle);

    var x2 = r - (r - r/10)* Math.cos(Math.PI - startAngle);
    var y2 = r + (r - r/10)* Math.sin(Math.PI - startAngle);

    var x3 = r - (r-5)* Math.cos(Math.PI - endAngle+0.05);
    var y3 = r + (r-5)* Math.sin(Math.PI - endAngle+0.05);

    ctx.moveTo(x1, y1);
    ctx.lineTo(x2, y2);

    ctx.arc(this.radius, this.radius, this.radius-(this.radius/10), startAngle, endAngle-0.05);
    ctx.lineTo(x3, y3);

    ctx.arc(this.radius, this.radius, this.radius-(5), endAngle-0.05, startAngle, true);
    ctx.lineTo(x1, y1);
    ctx.lineWidth = 1;
    ctx.fillStyle = '#8ED6FF';
    ctx.fill;
    ctx.strokeStyle='#8ED6FF';
    ctx.stroke();
    ctx.closePath();

虽然画出来的是干净的,但是我不能填充这个形状里面的颜色。我发现几乎没有其他讨论调用beginPath()closePath() API的线程,但这也没有帮助。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2020-12-27 16:49:13

您需要执行fill方法

代码语言:javascript
复制
ctx.fill();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35937816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档