HTML5是Canvas绘制圆形或弧线例子

绘制矩形(正方形):

var bg = document.getElementById('caibaojian');
var ctx = bg.getContext('2d');
ctx.beginPath();

//实心

//ctx.fillStyle="#0000ff"; //填充的颜色
//ctx.fillRect(20,20,100,100); //矩形起点为(20,20),长为100,宽为100

//空心

ctx.lineWidth = 10;//边框为10px
ctx.strokeStyle = '#00ff00';//绘制的颜色为#00ff00
//ctx.strokeRect(20,20,100,100);

//如果不使用矩形,也可以通过lineTo()来绘制

ctx.moveTo(20,20);
ctx.lineTo(100,20);
ctx.lineTo(100,100);
ctx.lineTo(20,100);
ctx.closePath();
//ctx.stroke(); //绘制空心
ctx.fill(); //填充绘制圆形/圆环

同样canvas里面也有一个特有的方法,

arc(x,y,r,sAngle,eAngle,counterclockwise);中心点为(x,y),半径为r,起始点为sAngle,终点为eAngle,逆时针方向。

绘制半圆弧

var bg = document.getElementById('caibaojian');
var ctx = bg.getContext('2d');
ctx.beginPath();
//在(100,100)处逆时针画一个半径为50,角度从0到180°的弧线
ctx.arc(100,100,50,0*Math.PI,1*Math.PI,true);
ctx.lineWidth=10;
//ctx.strokeStyle='#00ff00';
//var grd = ctx.createLinearGradient(0,0,200,0);//从左到右
//grd.addColorStop(0,"#ff0000"); //起始颜色
//grd.addColorStop(1,"#00ff00"); //终点颜色
//ctx.strokeStyle=grd;

ctx.stroke();绘制一个实心圆

//在(100,100)出逆时针画一个半径为50的实心圆
ctx.arc(100,100,50,0*Math.PI,2*Math.PI,true);

ctx.fill();绘制一个3/4圆弧

//在(100,100)出顺时针画一个半径为50的3/4圆弧
ctx.arc(100,100,50,0*Math.PI,1.5*Math.PI,false);
ctx.stroke();

使用canvas绘制弧线

现在,我们就来绘制一条半径为50px的圆的1/4弧线。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>HTML5 Canvas绘制弧线入门示例</title>
    </head>
    <body>

    <!-- 添加canvas标签,并加上红色边框以便于在页面上查看 -->
    <canvas id="myCanvas" width="400px" height="300px" style="border: 1px solid red;">
    您的浏览器不支持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>

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

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

    <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, true);   
        //按照指定的路径绘制弧线
        ctx.stroke();
    }
    </script>

时间: 2024-07-31 13:32:16

HTML5是Canvas绘制圆形或弧线例子的相关文章

js+html5实现canvas绘制圆形图案的方法

  本文实例讲述了js+html5实现canvas绘制圆形图案的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d

js+html5实现canvas绘制圆形图案的方法_javascript技巧

本文实例讲述了js+html5实现canvas绘制圆形图案的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not sup

js+html5实现canvas绘制镂空字体文本的方法

  本文实例讲述了js+html5实现canvas绘制镂空字体文本的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3

js+html5实现canvas绘制简单矩形的方法

  本文实例讲述了js+html5实现canvas绘制简单矩形的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c

HTML5的canvas绘制矩形

问题描述 HTML5的canvas绘制矩形 为什么可是打开浏览器后变成了这样: 解决方案 原文:http://www.lifelaf.com/blog/?p=363 本文翻译自Steve Fulton & Jeff Fulton HTML5 Canvas Chapter 2 "The Basic Rectangle Shape".让我们来看一下Canvas内置的简单几何图形 - 矩形的绘制.在Canvas中,绘制矩形有三种方法:填充(fillRect)......答案就在这里:

js+html5实现canvas绘制椭圆形图案的方法_javascript技巧

本文实例讲述了js+html5实现canvas绘制椭圆形图案的方法,HTML5 canvas 没有画椭圆的方法,以下代码可以画出椭圆,分享给大家供大家参考,具体实现方法如下: 1.在一个隐式的画布 (将 其 CSS 定义成:display:none; ) 上画园. 2.将隐式画布的影像,以不同的宽高比值,画在另一个显式的画布,以使园变成椭圆. 3.进而,加进动画功能. <html> <head> <meta http-equiv="Content-Type"

js+html5实现canvas绘制镂空字体文本的方法_javascript技巧

本文实例讲述了js+html5实现canvas绘制镂空字体文本的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> Your browser does not s

js+html5实现canvas绘制网页时钟的方法_javascript技巧

本文实例讲述了js+html5实现canvas绘制网页时钟的方法,画的是一个可用于网页的.带摆的钟表,可以通过按钮调整其大小和位置,具体实现内容如下 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Clock</title> <script type="tex

js+html5实现canvas绘制简单矩形的方法_javascript技巧

本文实例讲述了js+html5实现canvas绘制简单矩形的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;"> Your browser does not sup