HTML5(canvas)画布绘制图形

本文详细介绍了HTML5的canvas标签及其基本使用,包括如何创建画布、设置宽高、绘制路径、描边和填充图形。通过示例展示了如何绘制直线、三角形,并利用JavaScript实现动态画图。此外,还提供了一个简单的笑脸绘制示例,帮助读者理解canvas的绘图原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

canvas标签:

<canvas id="cavsElem" width="900" height="600">
        您的浏览器不支持,请升级浏览器
</canvas>
1.定义id属性是为了在JavaScript代码中引用元素
2.标签中间的文字在浏览器不支持canvas的情况下才会显示
3.canvas标签与img标签一样,有两个原生属性width和height默认300*500像素
4.不要用css控制它的宽和高,否则可能会引起画布上的图形变形

要在画布中绘图要通过函数

获取网页中的画布对象

//1.获取一个画布(要创建画布对象)

var avanvs = document.getElementById("avanvs");

注意:canvas画布默认为透明,背景色可以自己定义


接下来就该准备画笔了

有了画布就该准备画笔了

	//2.创建一个画布上下文对象
	var contxet=avanvs.getContext("2d");
    2d代表的是画笔的种类,也可以用3d进行三维操作

告诉canvas绘画路径开始

    //3.告诉canvas开始绘画
    contxet.beginPath();

坐标起点也就是开始的地点(坐标)

      //4.绘制图形的起始点(坐标)
      contxet.moveTo(0,0);

绘制线条:

在canvas中使用lineTo()方法绘制直线:
context.lineTo(x,y);
"x,y"为线头点坐标,lineTo( )方法用于定义从x,y的位置绘制一条直线
到起点或者上一个线头点

	//5.绘制图形的连接点
	contxet.lineTo(0,100);

有开始就有结束接下来是开始路径和闭合路径

    contxet.closePath();//闭合点

还是路径已经在告诉canvas绘画路径开始中写过

开始路径已经写过在这里需要闭合路径

如果你嫌看不见自己画的样式可以添加边框

	//6.设置图新的形式
	contxet.strokeStyle="red"

接下来就要开始描边了

    //7.描边
	contxet.stroke();

用Canvas绘制一个图形的基本步骤:

	//1.获取一个画布(要创建画布对象)
	var avanvs = document.getElementById("avanvs");
	//2.创建一个画布上下文对象
	var contxet=avanvs.getContext("2d");
	//3.告诉程序绘画路径开始
	contxet.beginPath();
	//4.绘制图形的起始点(坐标)
	contxet.moveTo(0,0);
	//5.绘制图形的连接点
	contxet.lineTo(0,100);
	contxet.closePath();//闭合点
	//6.设置图新的形式
	contxet.strokeStyle="red"
	//7.描边
	contxet.stroke();

接下来请欣赏创建三角形的步骤:

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	<!-- canvas画布 -->
	<canvas id="avanvs" width="500" height="500">
        您的浏览器版本太低不支持画布请更新浏览器
    </canvas>
	<script type="text/javascript">
		//1.获取一个画布(要创建画布对象)
		var avanvs = document.getElementById("avanvs");
		//2.创建一个画布上下文对象
		var contxet=avanvs.getContext("2d");
		//3.告诉程序绘画路径开始
		contxet.beginPath();
		//4.绘制图形的起始点(坐标)
		contxet.moveTo(0,0);
		//5.绘制图形的连接点
		contxet.lineTo(0,100);
		contxet.lineTo(100,100);
		contxet.closePath();//闭合点
		//6.设置图新的形式
		contxet.strokeStyle="red"//描边颜色
		//7.描边
		contxet.stroke();
		contxet.fillStyle="pink";//填充三角形的颜色
		contxet.fill();//填充
	</script>
</body>
</html>

这种方式也比较麻烦也可以用js的循环来缩减代码:

     <canvas id="canvas">
           您的浏览器版本太低,不支持画布,请更新浏览器
     </canvas>
    <script type="text/javascript">
        // 1.获取画布(创建一个画布对象)
        var canvas = document.getElementById("canvas");
        // 2.创建一个画布上下文
        var context = canvas.getContext("2d");
        // 3.开始路径
        context.beginPath();
        for (var i = 0; i < 100; i++) {
            context.beginPath();
            context.moveTo(10 * i, 0);
            context.lineTo(10 * i + 5, 0);
            context.closePath();
            // 设置样式
            context.lineWidth = 5;
            // 描边
            context.stroke();
        }
    </script>

可以画一个笑脸:

我画的不好看还在学习阶段 ing... 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <canvas id="cavsElem" width="900" height="600">
        您的浏览器不支持,请升级浏览器
    </canvas>
    <script>
        var context = document.getElementById('cavsElem').getContext('2d'); //获得上下文
        var canvas = document.getElementById('cavsElem');
        context.beginPath();//开始路径
        context.arc(200, 200, 200, 0, 2 * Math.PI, true); //会致圆形,true为逆时针
        context.closePath(); //关闭路径
        context.fillStyle = 'pink';//设置填充颜色
        context.fill(); //填充
        //绘制弧形
        context.beginPath();//开始路径
        context.strokeStyle = "#fff"; //设置描边颜色
        // context.lineWidth=5; //设置线的粗细
        context.arc(100, 100, 25, Math.PI, 5 * Math.PI, false); //绘制弧形
        context.closePath(); //关闭路径
        context.fillStyle = 'blue';//设置填充颜色
        context.fill(); //填充
        context.stroke(); //描边
        //绘制弧形
        context.beginPath();//开始路径
        context.strokeStyle = "#bbb"; //设置描边颜色
        // context.lineWidth=5; //设置线的粗细
        context.arc(280, 100, 25, Math.PI, 5 * Math.PI, false); //绘制弧形
        context.closePath(); //关闭路径
        context.fillStyle = 'blue';//设置填充颜色
        context.fill(); //填充
        context.stroke(); //描边
        //绘制弧形
        context.beginPath();//开始路径
        context.strokeStyle = "#fff"; //设置描边颜色
        context.lineWidth = 5; //设置线的粗细
        context.arc(200, 260, 80, Math.PI / 5.5, 5 * Math.PI / 6, false); //绘制弧形
        context.stroke(); //描边
    </script>
</body>
</html>

效果图

 

简介: 新的 HTML5 规范旨在帮助开发人员更轻松的编写出各类 Web 应用,以顺应当前 SaaS,云计算以及 RIA 等技术的最新趋势。在 HTML5 得以广泛推广之前,开发人员通常使用 SVG,VML 等技术进行 Web 绘图操作,但这些基于 XML 的绘图语言声明式的绘图方式并不能满足复杂绘图操作在性能上的需求,比如 Web 游戏所需要的像素级别的绘图能力。HTML5 canvas 元素的出现填补了这种不足,开发人员可以使用 JavaScript 脚本语言在 canvas 中进行一系列基于命令的图形绘制操作,本文将通过讲解如何使用 canvas 元素进行基本绘图操作,以及完成简单的动画和用户交互任务,阐明 canvas 在帮助构建 Web 图形类应用时所能够提供的能力。更多html5相关信息请关注html5中国:http://www.html5cn.org 背景介绍 HTML5 中新引入的 canvas 元素使得 Web 开发人员在无须借助任何第三方插件(如 Flash,Silverlight)的情况下,可以直接使用 JavaScript 脚本在 Web 页面进行绘图。它首次由苹果公司的 Webkit 框架引入实现,并成功运用在 Safari 浏览器中,读者在 这里可以体验到基于 canvas 的精彩示例。目前,canvas 已成为 HTML5 规范中的事实性标准,并且已经被 Firefox 3.0+, Safari 3.0+, Chrome 3.0+, Opera10.0+ 等浏览器所支持。最近(本文撰写之时),IE 也正式宣称将在其 9.0 版本之后,开始对 canvas 元素进行支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值