Canvas(画布)的使用

1 关于Canvas(画布)

<canvas>是一个可以使用脚本(通常为JavaScript)来绘制图形的 HTML元素.例如,它可以用于绘制图表、 制作图片构图或者制作动画. 下边的图片展示了一些 的实现示例。

<canvas>最早由Apple引入WebKit,用于Mac OS X 的 Dashboard,随后被各个浏览器实现。如今, 所有主流的浏览器都支持它。

2 准备工作

2.1 添加一个Canva

在HTML中添加Canvas非常简单,只需要在HTML的部分,添加上 <canvas> 标签就可以了!

 

<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<canvas id="canvas">
你的浏览器居然不支持Canvas?!赶快换一个吧!!
</canvas>
</body>
 </html>

canvas元素 和img元素很像,都有src 和 alt 属性,以及width和height属性。当没有设置canvas的宽度 和高度的时候,canvas会初始化宽度为300像素和高度为150像素。

<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="canvas-warp">
<canvas id="canvas" style="border: 1px solid #aaaaaa; display: block;
margin: 50px auto;" width="800" height="600">
你的浏览器居然不支持Canvas?!赶快换一个吧!!
</canvas>
</div>
</body>
</html>

2.2 获取canvas对象

画画首先需要啥?画笔啊。获取canvas画笔也是一句话的事情,就是直接使用刚才获得的canvas对象, 调用它的 getContext("2d") 方法,即可。

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

这里的context便是画笔了。 context 上下文

2.4 小结 准备工作只有三步:

1. 布置画布:通过添加 标签,添加canvas元素

2. 获取画布:通过 标签的id,获得canvas对象

3. 获得画笔:通过canvas对象的 getContext("2d") 方法,获得2D环境

3 绘制线段

使用canvas画线条和现实中画画差不多:

  1. 移动画笔,使画笔移动至绘画的开始处
  2. 确定第一笔的停止点 规划好之后,
  3. 选择画笔(包括画笔的粗细和颜色等)
  4. 确定绘制

因为Canvas是基于状态的绘制(很重要,后面会解释),所以前面几步都是在确定状态,最后一步才会 具体绘制

3.1 移动画笔(moveTo())

之前我们获得了画笔 context ,所以以此为例,给出改方法的使用实例—— context.moveTo(100,100) 。这句代码的意思是移动画笔至(100,100)这个点(单位是px)。这里是 以 canvas 画布的左上角为笛卡尔坐标系的原点,且y轴的正方向向下,x轴的正方向向右。

3.2 笔画停点(lineTo())

同理, context.lineTo(600,600) 。这句的意思是从上一笔的停止点绘制到(600,600)这里。不过要清 楚,这里的 moveTo() 和 lineTo() 都只是状态而已,是规划,是准备要画,还没有开始画,只是一个计 划而已!

3.3 选择画笔

这里我们暂且只设置一下画笔的颜色和粗细。 context.lineWidth = 5 ,这句话的意思是设置画笔(线条)的粗细为10px。 context.strokeStyle = "red" ,这句话的意思是设置画笔(线条)的颜色为红色。 因为Canvas是基于状态的绘制,所以我们在选择画笔粗细和颜色的同时,其实也是选择了线条的粗细和 颜色。

3.4 确定绘制

确定绘制只有两种方法, fill() 和 stroke() ,前者是指填充,后者是指描边。因为我们只是绘制线 条,所以只要描边就可以了。调用代码 context.stroke() 即可。

<script>
window.onload = function(){
var canvas = document.getElementById("canvas");
canvas.width = 800;
canvas.height = 600;
var context = canvas.getContext("2d");
context.moveTo(100,100);
context.lineTo(600,600);
context.lineWidth = 5;
context.strokeStyle = "red";
context.stroke();
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值