Canvas-绘制图形
beginPath 、closePath
beginPath()
- 开始一条新的路径,调用此方法后,之前的所有路径会被清空,开始绘制新的路径
- 通常在绘制图形前调用,确保不会被之前的路径影响
closePath()
- 用于闭合一条路径,会从当前点画一条直线回到路径开始的地方,形成一个闭合的形状
- 需要通过连线绘制封闭图形时
beginPath()
和closePath()
不是要成对出现的,他们的作用有很大的区别
路径
moveTo(x, y)
:设置路径的起点,即将一个新路径的起始点移动到(x,y)
坐标lineTo(x, y)
:使用直线从当前点连接到(x, y)
坐标fill()
:在路径内部填充颜色stroke()
:路径线条着色fillStyle
:指定路径填充的颜色和样式strokeStyle
:指定路径线条的颜色和样式
绘制一个三角形:
线
lineWidth
:指定线条的宽度lineCap
:指定线条末端的样式- butt:矩形(默认值)
- round:圆形
- square:突出的矩形,矩形宽度不变,高度为线条宽度的一半
lineJoin
:指定线段交点的样式- miter:菱形(默认值)
- round:扇形
- bevel:三角形底边
miterLimit
:指定交点菱形的长度(只在lineJoin
属性的值等于miter
时有效)getLineDash()
:返回一个数组,表示虚线里面线段和间距的长度setLineDash(array)
:数组,用于指定虚线里面线段和间距的长度
矩形
rect(x, y, width, height)
:绘制矩形路径,起始点位于(x, y)
,大小由width
和height
指定roundRect(x, y, width, height, r)
:绘制圆角矩形路径,与rect
相似,多一个绘制圆角的参数fillRect(x, y, width, height)
:填充一个矩形strokeRect(x, y, width, height)
:绘制矩形边框clearRect(x, y, width, height)
:指定矩形区域的像素都变成透明
弧线(圆形)
ctx.arc(x, y , r, 起始弧度, 结束弧度, 弧形方向)
:通过指定圆心和半径绘制弧形
arc()
方法创建一个以坐标(x, y)
为中心,以radius
为半径的圆弧。路径从startAngle
开始,到endAngle
结束,路径方向由counterclockwise
参数(可选)决定(默认为顺时针方向 --false
)
文本
fillText(text: string, x: number, y: number)
:在指定位置绘制实心字符。strokeText(text: string, x: number, y: number)
:在指定位置绘制空心字符。measureText()
:返回一个 TextMetrics 对象。- 可以从这个对象上面获取参数字符串的信息,目前主要是文本渲染后的宽度(
width
)
- 可以从这个对象上面获取参数字符串的信息,目前主要是文本渲染后的宽度(
const text1 = ctx.measureText('Hello world');
text.width // 49.46
font
:指定字型大小和字体,默认值为10px sans-serif
。- 和 css字体描述 相同的字符串
textAlign
:文本的对齐方式,默认值为start
。direction
:文本的方向,默认值为inherit
。textBaseline
:文本的垂直位置,默认值为alphabetic
渐变色和图像填充
线性渐变
createLinearGradient(x0, y0, x1, y1)
方法需要指定四个参数,分别表示渐变线段的起点和终点
径向渐变
createRadialGradient(x0, y0, r0, x1, y1, r1)
方法由六个参数指定,三个参数定义渐变的起始圆,另外三个参数定义渐变的结束圆。
重复填充图像
createPattern(image, repetition)
方法定义一个图像填充样式,在指定方向上不断重复该图像,填充指定的区域
- image:图像数据,它可以是
<img>
元素,也可以是另一个<canvas>
元素,或者一个表示图像的 Blob 对象 - repetition:
repeat
(双向重复)、repeat-x
(水平重复)、repeat-y
(垂直重复)、no-repeat
(不重复)
阴影
shadowBlur
:阴影的模糊程度,默认为0
shadowColor
:阴影的颜色,默认为black
shadowOffsetX
:阴影的水平位移,默认为0
shadowOffsetY
:阴影的垂直位移,默认为0
图片
使用 drawImage()
绘制
值 | 说明 |
---|---|
dom | 图片 |
number | 绘制图片的起始点的x |
number | 绘制图片的起始点的y |
number | 可选:绘制的宽度 |
number | 可选:绘制的高度 |
number | 可选:canvas绘制的起始点的x |
number | 可选:canvas绘制的起始点的y |
number | 可选:canvas绘制的宽 |
number | 可选:canvas绘制的高 |
绘制一张完整的图片
绘制一张图片,并截取一部分渲染