Canvas学习笔记1

描述:

HTML5的canvas标签用于绘制图像(通过脚本,通常是JavaScript)。
不过,canvas元素本身没有绘制能力(它仅仅是图形的容器),必须使用脚本来完成实际的绘制任务。
getContext()方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性。
提供完整的getContext(“2d”)对象的属性和方法,可用于在画布上绘制文本、线条、矩形、圆形等等。

canvas三要素:id、width、height(这里的宽高跟style是有区别的)
正常情况下,放在canvas标签内部的内容是不显示的。

例子

<canvas id="canvas1" width="600" height="600">
	这里的内容,正常情况下不显示
</canvas>

<script>
	// 1.找到画布对象
	var canvas1 = document.querySelector("#canvas1");
	// 2.上下文对象(画笔) 2d的意思是使用2d引擎,用来画平面的;;画3d是用 webgl
	var ctx = canvas1.getContext("2d");
	// 3.绘制一个长方形,参数是x坐标,y坐标,宽度,高度
	ctx.rect(50,50,300,300)
	// 4.设置画笔颜色
	ctx.fillStyle="aqua"
	// 5.填充
	ctx.fill()
	// 6.描边颜色和描边宽度
	ctx.lineWidth=20
	ctx.strokeStyle="salmon"
	// 7.描边
	ctx.stroke()
</script>

画路径(线条)

	// 1.找到画布对象
	var canvas1 = document.querySelector("#canvas1");
	// 2.上下文对象(画笔) 2d的意思是使用2d引擎,用来画平面的;;画3d是用 webgl
	var ctx = canvas1.getContext("2d");

	// 设置开始路径
	ctx.beginPath()
	// 设置绘制的起始点
	ctx.moveTo(50,50)
	// 设置经过某个位置
	ctx.lineTo(50,300)
	// 设置经过某个位置
	ctx.lineTo(300,300)
	// 设置结束路径,不关闭的话就是连起来画,而关闭之后就可以又开始画另外一个
	ctx.closePath()

	// 设置线条起始位置的样式,默认是butt 平直的
	ctx.lineCap = "round" //设置成圆角
	// 设置两线交汇处的角的样式,默认是miter 尖锐的
	ctx.lineJoin="round" //设置成圆角
	// 绘制路径
	ctx.strokeStyle="aqua"
	ctx.lineWidth=10
	ctx.stroke()
	// 继续使用填充就会在线段连接起来进行填充,这里的效果就是一个直角三角形
	// ctx.fill()

在这里插入图片描述

继续执行填充的效果
在这里插入图片描述
设置或返回最大斜接长度(有三个等级,即可选值1,2,3)

ctx.miterLimit = 2

在这里插入图片描述

画圆

	// 1.找到画布对象
	var canvas1 = document.querySelector("#canvas1");
	// 2.上下文对象(画笔) 2d的意思是使用2d引擎,用来画平面的;;画3d是用 webgl
	var ctx = canvas1.getContext("2d");

	// 画圆,参数x坐标,y坐标,半径,弧度开始(0表示水平x轴方向),弧度结束(2π就是一个圆),(可选)是否逆时针绘制
	ctx.arc(300,300,100,0,Math.PI,false) // 最后一个参数默认为false表示顺时针绘制

	ctx.fillStyle="bisque"
	ctx.fill()
	ctx.stroke()

在这里插入图片描述

画文本

	// 1.找到画布对象
	var canvas1 = document.querySelector("#canvas1");
	// 2.上下文对象(画笔) 2d的意思是使用2d引擎,用来画平面的;;画3d是用 webgl
	var ctx = canvas1.getContext("2d");

	// 设置字体大小和名称
	ctx.font="50px 微软雅黑"
	// 参数 文本内容,宽度,高度,
	ctx.fillText("hellworld",100,100) // 最后一个参数默认为false表示顺时针绘制
	
	// 阴影模糊度,颜色,偏移
	ctx.shadowBlur=20
	ctx.shadowColor="rgba(0,0,0,1)"
	ctx.shadowOffsetX = 10
	ctx.shadowOffsetY = 10
	
	// 设置描边内容
	ctx.strokeText("中午吃啥?",100,200)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值