Html5——Canvas标签学习笔记

一、定义一个带边框、规定大小的canvas

<canvas id="canvas" width="1024" height="768" style="border:1px solid #aaa;display:block;margin:50px auto;"></canvas>
  • 不建议使用CSS方法来定义canvas的大小,因为使用CSS方法指定的大小是画布显示区的大小;使用定义width属性的话,是将canvas内图片的分辨率一同定义了。
  • width和height没有指定单位,因为上述定义方法一同将画布内元素的精度一同定义了,所以不加上单位才是符合W3C的要求。

二、浏览器兼容性

<canvas id="canvas">浏览器版本过老,请更换浏览器之后再试</canvas>

或者

<pre name="code" class="javascript">if(canvas.getContext('2d')){//canvas.getContext('2d')返回值为空,则表示浏览器不支持canvas标签
}else{
alert("浏览器不支持canvas");
}
 

三、对canvas进行编辑

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d')
canvas本身不具有绘图功能,所以绘图需要在JS中实现;

上述方法通过Id获取canvas标签,并通过使用getContext('2d')来创建一个context对象,这个context对象拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

后续的所有操作都是在context对象中进行操作,2d表示所绘图像为2D。

此时也可以在JS中通过canvas.width来指定画布大小。

四、创建简单图形

坐标是以画布的左上角为原点,向右为X轴正方向,向左为Y轴正方向

线条

context.moveTo(100,100);//把路径移动到画布中的指定点,不创建线条
context.lineTo(700,700);//添加一个新点,然后在画布中创建从该点到最后指定点的线条
<pre name="code" class="javascript">context.lineWidth = 10;//定义线条宽度
context.strokeStyle = "#0000ff";//定义线条样式,可以采用CSS方式
context.stroke();//绘制已定义的路线
 

多边形

context.moveTo(100,100);
context.lineTo(100,700);
context.lineTo(700,400);
context.lineTo(400,100);
context.lineTo(100,100);

给多边形填充颜色

context.fillStyle = "rgb(2,100,30)";//设置或返回用于填充绘画的颜色、渐变或模式
context.fill();//填充当前绘图(路径)

当需要创建两个或多个图形时

在每一个图形的状态前后加上context.beginPath()和context.closePath();

当所绘图形不是封闭的,closePath()函数会自动补充线段将图形封闭起来。

若不想要将图形封闭起来,直接将closePath()去掉即可,两者不一定需要同时出现。

圆形

context.arc(300,300,200,0,1.5*Math.PI);
语法为:arc(centerX,centerY,radio,starAngle,endAngle, counterclockwise);

分别为圆心X坐标,圆心Y坐标,半径,起始弧度,结束弧度,方向(顺时针true或逆时针false);

无论旋转方向如何,0弧度为3点钟方向,0.5PI为6点钟方向,以此类推;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值