通过HTML5 Canvas API绘制弧线和圆形的教程

2019-01-28 15:15:03于海丽
  • 您的浏览器不支持canvas标签。    </canvas>   
  •    <script type="text/javascript">   
  • //获取Canvas对象(画布)    var canvas = document.getElementById("myCanvas");   
  • //简单地检测当前浏览器是否支持Canvas对象,以免在一些不支持html5的浏览器中提示语法错误    if(canvas.getContext){     
  •     //获取对应的CanvasRenderingContext2D对象(画笔)        var ctx = canvas.getContext("2d");     
  •             //开始一个新的绘制路径   
  •     ctx.beginPath();        //设置弧线的颜色为蓝色   
  •     ctx.strokeStyle = "blue";        var circle = {   
  •         x : 100,    //圆心的x轴坐标值            y : 100,    //圆心的y轴坐标值   
  •         r : 50      //圆的半径        };   
  •     //沿着坐标点(100,100)为圆心、半径为50px的圆的顺时针方向绘制弧线        ctx.arc(circle.x, circle.y, circle.r, 0, Math.PI / 2, false);       
  •     //按照指定的路径绘制弧线        ctx.stroke();   
  • }    </script>   
  • </body>    </html>  

    对应的显示效果如下图:
    2016314114137324.png (418×312)

    使用canvas沿着顺时针方向绘制弧线
    如上所示,我们设置了绘制的弧线的所在圆的圆心坐标为(100,100),半径为50px。由于一个半径为r的圆的周长为2πr,也就是说,一个完整的圆,其所对应的弧度为2π(换算成常规角度就是360°),所以我们想要画一个圆的1/4弧线,只要弧度为π/2(即90°)就可以了。在上面的代码中,我们使用了JavaScript中表示π的常量Math.PI。

    此外,在上面的代码中,我们还设置了绘制弧线的方向为顺时针方向(false)。由于起始弧度为0,结束弧度为π/2,因此弧线将从x轴的正方向开始沿着顺时针方向绘制,从而得到上面的图形。如果我们将上述代码中的弧线绘制方向改为逆时针,会有什么样的效果呢?