关于HTML5中的Canvas

一,Canvas是什么

Canvas  是 HTML5 中新增加的  API  用于网页实时的生成图像,,并且可以操作图像内容,基本上它是一个可以用JavaScript操作的图片。

二,Canvas什么用

为了可以直观的观察到Canvas的存在,我们将Body的background设置为黑色,将Canvas的background设置为黑色

<style>
    body {
	width: 100%;
	height: 100%;
	background: black;
    }
			
    canvas {
	background: #fff;
    }
</style>

在HTML标签中输入<canvas>标签,并且直接在标签中的设置宽度和高度。*注意Canvas标签的样式应该直接使用它自带的如下图

<canvas id="canvas" width="300" height="300"></canvas>

在输入完上述的代码后会得到以下效果

 以上就是Canvas的HTML演示布局

三, 使用Canvas绘制矩形

 

那么,我们想在canvas上面画出矩形,我们就需要认识以下几种api

方法描述
getContext()获取绘图环境,可选参数"2d"
fillRect(x,y,width,height)绘制一个填充的矩形
strokeRect(x,y,width,height)绘制一个矩形的边框
clearRect(x,y,width,height)清除指定矩形区域。
<script>
	var oC = document.getElementById("canvas")//获取标签Canvas
	var oGC = oC.getContext("2d")//使用它只带的属性
	oGC.fillRect(50.5,50.5,100,100)//第一个值是X轴,第二个值是Y轴
	oGC.fillRect(150.5,50.5,100,100)//第三个和第四个值是设置的宽度和高度的
	oGC.fillRect(250.5,50.5,100,100)
</script>

输入上述代码获得以下效果*注意在canvas的坐标轴的轴心在左上角而且Y轴是向下为正

 四,使用Canvas绘制圆形

我们来看下如何在canvas中绘制一个圆形,绘制圆形分为4个步骤。

         1)      开始绘制路径(beginPath)

         2)      创建图像路径

         3)      路径创建完成后,关闭路径

         4)      设定绘制样式,调用绘制方法,绘制路径(closePtah)

绘制圆形,canvas也为我们提供了arc这个方法

ctx.arc(x,y,radius,startAngle,endAngle,anticlockwise)

该方法有6个参数,x为绘制圆形的起点横坐标,y表示绘制圆形的起点的纵坐标,radius表示圆的半径,startAngle为开始角度,endAngle为结束的角度, anticlockwise是否按照顺时针方向进行绘制。false表示顺时针。(默认为顺时针)。 

var canvas = document.getElementById("canvas")
var ctx = canvas.getContext("2d")//获取绘制图片的"2d"环境
ctx.beginPath()
ctx.arc(100,100,50,0,90*Math.PI/180,false)
ctx.stroke()
ctx.closePath()

其中有个弧度转换的公式:degreens*Math.PI/180绘制圆形默认按照以下的位置进行切换。

五,用Canvas绘制路径

我们可以使用moveTo()和lineTo()绘制直线,或者是自己想要的图形,不局限于矩形。

方法描述
moveTo(x,y)不绘制,只是将当前位置移动到新的目标点
lineTo(x,y)不仅将当前位置移动到新的目标点(x,y),而且在两个坐标之间画一条直线。
linejoin设置两线段连接处所显示的样子。round,bevel,miter
lineCap线段端点显示的样式
save保存绘画路径
restore销毁路径

*我们使用两个方法的时候,要注意使用closePath()闭合。因为它会通知canvas当前绘制的图形已经闭合或者形成了完全封闭。

下面是一个等腰三角型的代码

<script>
	var oC = document.getElementById("canvas")
	var oGC = oC.getContext("2d")
	oGC.beginPath()
	oGC.moveTo(100,100)
	oGC.lineTo(200,200)
	oGC.lineTo(300,100)
	oGC.closePath()
	oGC.stroke()
</script>

下面是效果图

暂时学到这里下星期更新,谢谢观看

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值