Canvas与SVG简介及实例

1 章节目录

  1. Canvas 简介
  2. 使用 Canvas 绘制图形
    2.1. <canvas> 标签
    2.2. 绘制线条
    2.3 设置线条的样式
    2.4 设置线条的路径
  3. Canvas 常用方法
    3.1.canvas 绘制矩形
    3.2 canvas 绘制圆形
    3.3 canvas 绘制椭圆
    3.4 canvas 绘制文本
    3.5 canvas 渐变
  4. SVG 简介
    4.1 什么是SVG ?
    4.2 SVG优势
    4.3 浏览器支持
    4.4 SVG 与 Canvas 两者间的区别
  5. 使用 SVG 绘制基本图形
    5.1 绘制矩形
    5.2.2 绘制椭圆
    5.3 绘制直线、折线、多边形

1 Canvas 简介

Canvas 表示画布,现实生活中的画布是用来作画的。

HTML5 中的 Canvas :我们可以称它为“网页中的画布”。默认情况下,Canvas 是一块 300px*150px 的矩形画布,用户可以自定义画布的大小或为画布添加其他属性。

利用 Canvas 实现绘画:Canvas 并不是通过鼠标绘画的,而是用户需要通过 JavaScript 来控制画布中的内容,例如添加图片、线条、文字等。

2 使用 Canvas 绘制图形

2.1 <canvas> 标签

使用 HTML5 中的 <canvas> 标签在网页中创建一个画布,语法格式如下:

<canvas id="canvas" width="400" height="300">
	您的浏览器不支持canvas标签,请更新浏览器
</canvas>

上述代码定义了一个 id 为 canvas 的画布,并设置了画布的宽度为 400px,高度为 300px。

通过 JavaScript 的 getElementById() 方法获取到网页中的画布对象,代码如下所示:

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

上述代码获取了 id 为 canvas 的画布,同时将获取的画布对象保存在变量 canvas 中。

context 对象:是画布的上下文,也叫做绘制环境,是所有的绘制操作 API 的入口。
context 对象可以使用 getContext() 方法获得,代码如下所示:

var context = canvas.getContext('2d');

上述代码中的参数 2d 代表画笔的种类,表示二维绘图的画笔。如果想要绘制三维图,可以把参数替换为 webgl

2d:代表一个平面,绘制图形时需要在平面上确定起始点,也就是“从哪里开始画”,这个点需要通过坐标来控制。

Canvas 的坐标系:从最左上角 0,0 开始。x 轴向右逐渐增加,y 轴向下逐渐增加。
在这里插入图片描述

2.2 绘制线条

线的定义:线是所有复杂图形的组成基础,想要绘制复杂的图形,首先要从绘制线开始。

线的组成:在绘制线之前首先要了解线的组成。一条最简单的线由三部分组成,分别为初始位置、连线端点以及描边。

在这里插入图片描述

初始位置:在绘制图形时,我们首先需要确定从哪里下“笔”,这个下“笔”的位置就是初始位置。

在画布中使用 moveTo(x, y) 方法来定义初始位置,其中 x 和 y 表示水平坐标轴和垂直坐标轴的位置,中间用 , 隔开。x 和 y 的取值为数字,表示像素值(单位省略)。

设置初始位置的示例代码如下所示:

context.moveTo(x, y);

连线端点:在画布中使用 lineTo(x, y) 方法来定义连线端点。和初始位置类似,连线端点也需要定义 x 和 y 的坐标位置。

定义连线端点的代码如下所示:

context.lineTo(x, y);

描边:通过初始位置和连线端点可以绘制一条线,但这条线并不能被看到。这时我们需要为线添加描边,让线变得可见。

使用画布中的 stroke() 方法,可以实现线的可视效果。

设置描边的代码如下所示:

context.stroke();

绘制字母 M,效果如图:

在这里插入图片描述

步骤一:创建画布:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>绘制字母M</title>
	</head>
	<body>
		<canvas id="canvas" width="400" height="300">
			您的浏览器不支持canvas标签,请更新浏览器
		</canvas>
	</body>
</html>

步骤二:绘制字母 M:

<script>
    var canvas = document.getElementById('canvas');	// 获取canvas标签
    var context = canvas.getContext('2d');			// 获得context对象
    
    context.moveTo(10,100);		// 定义初始位置
    context.lineTo(30,10);		// 定义连接线端点
    context.lineTo(50,100);		// 定义连接线端点
    context.lineTo(70,10);		// 定义连接线端点
    context.lineTo(90,100);		// 定义连接线端点
    context.stroke();			// 描边
</script>

2.3 设置线条的样式

掌握设置线条的样式的方法,能够实现设置不同样式的线条。

设置线条宽度:使用 lineWidth 属性可以定义线的宽度,该属性的取值为数值(不带单位),以像素为计量。

设置线的宽度的示例代码如下所示:

context.lineWidth = 10;

以上代码设置了线的宽度为 10px。

设置描边颜色:使用 strokeStyle 属性可以定义线的描边颜色,该属性的取值为十六进制颜色值或颜色的英文名。

设置描边颜色的示例代码如下所示:

context.strokeStyle = '#f00';
context.strokeStyle = 'red';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HTML5是一种用于构建互联网页面的标准,它结合了HTML、CSS和JavaScript等技术,拥有许多强大的特性和功能,使得开发人员能够创建高度交互性和响应性的网页应用程序。 HTML5开发的一个重要特点是它支持多媒体元素,如视频和音频。开发人员可以使用HTML5的<video>和<audio>标签来嵌入和播放视频和音频文件,而无需使用第三方插件。此外,HTML5还提供了一些API,如媒体控制API和音频处理API,使得开发人员能够更好地控制和处理媒体元素。 另一个重要的特性是离线应用程序。使用HTML5的离线缓存API,开发人员可以使网页应用程序在离线状态下正常工作。开发人员可以将网页资源缓存到用户设备的本地存储中,在用户离线时加载缓存的资源以提供基本功能。 此外,HTML5还支持本地存储和数据库。使用HTML5的Web Storage API,开发人员可以在用户浏览器中存储键值对数据,以实现本地数据存储和会话管理。HTML5还提供了IndexedDB API,允许开发人员使用类似数据库的方式存储和检索大量结构化数据。 HTML5还引入了CanvasSVG两种新的绘图技术。Canvas是一个用于绘制图形的API,开发人员可以使用JavaScript代码来绘制图形、创建动画和处理用户事件。而SVG是一种使用XML描述的矢量图形语言开发人员可以使用它来创建丰富多样的矢量图形。 除了以上提到的特性,HTML5还有很多其他有用的功能,如地理位置API、拖放API、WebSocket等等。开发人员可以根据具体需求选择合适的功能来开发网页应用程序。 综上所述,HTML5开发精要包括了多媒体元素、离线应用程序、本地存储和数据库、绘图技术等等,这些功能使得开发人员能够创建出更加交互和功能丰富的网页应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值