canvas如何在几个同心圆上内部圆的边框颜色不被外部圆的内填充颜色覆盖,想实现如图所示效果

hughyuan
  • 254

我的代码如下,两种黑色都会将内部圆的边框覆盖掉

<script>
    var canvas = document.getElementById("myCanvas");
    var ctx = canvas.getContext("2d");
    var radius=10;
    for(var a=0;a<3;a++){
        ctx.beginPath();
        ctx.arc(100,100,radius,0,Math.PI*2);
        ctx.strokeStyle="red"
        ctx.stroke()
        ctx.fill()
        ctx.closePath();
        radius+=20
    }
    /*ctx.beginPath();
        ctx.arc(100,100,10,0,Math.PI*2);
        ctx.strokeStyle="green"
        ctx.stroke()
        ctx.fill()
        ctx.closePath();
    ctx.beginPath();![图片描述][1]
        ctx.arc(100,100,30,0,Math.PI*2);
        ctx.strokeStyle="green"
        ctx.stroke()
        ctx.fill()
        ctx.closePath();  */
    </script>
回复
阅读 3.8k
2 个回答

先画外面再画里面,先后顺序理清楚了就好了

楼上说的是一种办法,其实还有一种办法就是设置多层画布,利用z-index来设置不同画布的z轴高度

宣传栏