Skip to content

ESCanvasComponent

绘图API参考

绘图API属性方法及说明汇总

方法名说明
destoryView销毁方法
drawAction调用绘制后必填方法
drawFinish指令完成后,用于清除指令方法,建议调用
clearRect清除画布上在该矩形区域内的内容
fillStyle绘制颜色样式例如 '#ff0000' 或者 'rgb(188,219,236)'
fillRect绘制矩形的长宽高
strokeStyle设置边框颜色
strokeRect画一个非填充矩形
fillText填充文本
strokeText给定的 (x, y) 位置绘制文本描边的方法
lineWidth设置线条的宽度
lineCap设置线条的端点样式 'butt'(默认)、'round'、'square'
lineJoin设置线条的交点样式 'bevel'、'round'、'miter'(默认)
font设置当前字体样式的属性 符合 CSS font 语法的 DOMString 字符串。默认值为 10px sans-serif
textAlign设置文字的对齐方式 'start'(默认),'end','left','center','right'
textBaseline设置文字的水平对齐 'alphabetic'(默认),'middle','top','hanging','bottom','ideographic'
beginPath开始创建一个新路径
closePath封闭一个路径
moveTo把路径移动到画布中的指定点
lineTo使用直线连接子路径的终点到 x,y 坐标
bezierCurveTo绘制三次贝赛尔曲线路径
quadraticCurveTo创建二次贝塞尔曲线路径
arc画一条弧线
arcTo根据控制点和半径绘制圆弧路径
fill对当前路径中的内容进行填充
stroke画出当前路径的边框
clip将当前创建的路径设置为当前剪切路径
rotate顺时针旋转当前坐标轴
scale据 x 水平方向和 y 垂直方向,为 canvas 单位添加缩放变换。
setTransform使用矩阵重新设置(覆盖)当前变换的方法
transform使用矩阵多次叠加当前变换
translate对当前坐标系的原点(0, 0)进行变换
globalAlpha设置全局画笔透明度
restore恢复之前保存的绘图上下文
save保存当前的绘图上下文
setLineDash设置虚线样式的方法
lineDashOffset设置虚线偏移量的属性
globalCompositeOperation设置要在绘制新形状时应用的合成操作的类型。
shadowBlur阴影的模糊级别,数值越大越模糊,默认值为 0
shadowColor可以转换成 CSS值的 DOMString 字符串。 默认值是 fully-transparent black.
shadowOffsetX阴影水平偏移距离的 float 类型的值。默认值是 0。
shadowOffsetY阴影垂直偏移距离的 float 类型的值。 默认值是 0。
CanvasGradient渐变对象,通过 new CanvasGradient() 创建
addColorStop该方法在 CanvasGradient 对象上添加一个由偏移值和颜色值指定的断点

方法和属性

绘制矩形

clearRect()

清除画布上在该矩形区域内的内容

语法

ctx.clearRect(x, y, width, height);

参数

参数类型描述
x<number>矩形区域左上角的 x 坐标
y<number>矩形区域左上角的 y 坐标
width<number>矩形区域的宽度
height<number>矩形区域的高度

fillRect()

填充一个矩形

语法

ctx.fillRect(x, y, width, height);

参数

参数类型描述
x<number>矩形路径左上角的 x 坐标
y<number>矩形路径左上角的 y 坐标
width<number>矩形路径的宽度
height<number>矩形路径的高度

strokeRect()

画一个非填充矩形

语法

ctx.strokeRect(x, y, width, height);

参数

参数类型描述
x<number>矩形路径左上角的 x 坐标
y<number>矩形路径左上角的 y 坐标
width<number>矩形路径的宽度
height<number>矩形路径的高度

绘制文本

fillText()

填充文本

语法

ctx.fillText(text, x, y)

参数

参数类型描述
text<string>在画布上输出的文本
x<number>绘制文本的左上角 x 坐标位置
y<number>绘制文本的左上角 y 坐标位置

strokeText()

给定的 (x, y) 位置绘制文本描边的方法

语法

ctx.strokeText(text, x, y);

参数

参数类型描述
text<string>要绘制的文本
x<number>文本起始点的 x 轴坐标
y<number>文本起始点的 y 轴坐标

线型

lineWidth

设置线条的宽度

语法

ctx.lineWidth(lineWidth);

参数

参数类型描述
lineWidth<number>线条的宽度

lineCap

设置线条的端点样式

语法

ctx.lineCap(lineCap);

参数

参数类型描述
lineCap<string>'butt'(默认)、'round'、'square'

lineJoin

设置线条的交点样式

语法

ctx.lineJoin(lineJoin);

参数

参数类型描述
lineJoin<string>'bevel'、'round'、'miter'(默认)

文本样式

font

设置当前字体样式的属性

语法

ctx.font(value);

参数

参数类型描述
value<string>符合 CSS font 语法的 DOMString 字符串。默认值为 10px sans-serif

textAlign

设置文字的对齐方式

语法

ctx.textAlign(align);

参数

参数类型描述
align<string>'start'(默认),'end','left','center','right'

textBaseline

设置文字的水平对齐

语法

ctx.textBaseline(textBaseline);

参数

参数类型描述
textBaseline<string>'alphabetic'(默认),'middle','top','hanging','bottom','ideographic'

填充和描边样式

fillStyle

设置填充色

语法

ctx.fillStyle(color);
ctx.fillStyle(gradient);

参数

参数类型描述
color<string>CSS color
gradientCanvasGradientCanvasGradient 对象,可通过 new CanvasGradient(x0, y0, x1, y1)方法创建

strokeStyle

设置边框颜色

语法

ctx.strokeStyle(color);
ctx.strokeStyle(gradient);

参数

参数类型描述
color<string>CSS color
gradientCanvasGradientCanvasGradient 对象,可通过 new CanvasGradient(x0, y0, x1, y1)方法创建

渐变和图案

CanvasGradient

创建一个线性的渐变颜色

语法

const gradient = new CanvasGradient(x0, y0, x1, y1);

参数

参数类型描述
x0<number>起点的 x 坐标
y0<number>起点的 y 坐标
x1<number>终点的 x 坐标
y1<number>终点的 y 坐标

路径

beginPath()

开始创建一个新路径

语法

ctx.beginPath();

closePath()

封闭一个路径

语法

ctx.closePath();

moveTo()

把路径移动到画布中的指定点

语法

ctx.moveTo(x, y);

参数

参数类型描述
x<number>目标位置的 x 坐标
y<number>目标位置的 y 坐标

lineTo()

使用直线连接子路径的终点到 x,y 坐标

语法

ctx.lineTo(x, y);

参数

参数类型描述
x<number>目标位置的 x 坐标
y<number>目标位置的 y 坐标

bezierCurveTo()

绘制三次贝赛尔曲线路径

语法

ctx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);

参数

参数类型描述
cp1x<number>第一个贝塞尔控制点的 x 坐标
cp1y<number>第一个贝塞尔控制点的 y 坐标
cp2x<number>第二个贝塞尔控制点的 x 坐标
cp2y<number>第二个贝塞尔控制点的 y 坐标
x<number>结束点的 x 坐标
y<number>结束点的 y 坐标

quadraticCurveTo()

创建二次贝塞尔曲线路径

语法

ctx.quadraticCurveTo(cpx, cpy, x, y);

参数

参数类型描述
cpx<number>贝塞尔控制点的 x 坐标
cpy<number>贝塞尔控制点的 y 坐标
x<number>结束点的 x 坐标
y<number>结束点的 y 坐标

arc()

画一条弧线

语法

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

参数

参数类型描述
x<number>圆的 x 坐标
y<number>圆的 y 坐标
radius<number>圆的半径
startAngle<number>起始弧度, x 轴方向开始计算,单位以弧度表示。
endAngle<number>终止弧度
anticlockwiseBoolean可选。如果为 true,逆时针绘制圆,反之,顺时针绘制

arcTo()

根据控制点和半径绘制圆弧路径

语法

ctx.arcTo(x1, y1, x2, y2, radius);

参数

参数类型描述
x1<number>第一个控制点的 x 轴坐标
y1<number>第一个控制点的 y 轴坐标
x2<number>第二个控制点的 x 轴坐标
y2<number>第二个控制点的 y 轴坐标
radius<number>圆弧的半径

rect()

创建一个矩形

语法

ctx.rect(x, y, width, height);

参数

参数类型描述
x<number>矩形路径左上角的 x 坐标
y<number>矩形路径左上角的 y 坐标
width<number>矩形路径的宽度
height<number>矩形路径的高度

绘制路径

fill()

对当前路径中的内容进行填充

语法

ctx.fill();

stroke()

画出当前路径的边框

语法

ctx.stroke();

clip()

将当前创建的路径设置为当前剪切路径

语法

 ctx.clip();

变换

rotate()

顺时针旋转当前坐标轴

语法

ctx.rotate(angle);

参数

参数类型描述
rotate<number>顺时针旋转的弧度。如果你想通过角度值计算,可以使用公式: degree * Math.PI / 180 。旋转中心点一直是 canvas 的起始点。 如果想改变中心点,可以通过 translate() 方法移动 canvas.

scale()

据 x 水平方向和 y 垂直方向,为 canvas 单位添加缩放变换。

语法

ctx.scale(x, y);

参数

参数类型描述
x<number>水平方向的缩放因子
y<number>垂直方向的缩放因子

setTransform()

使用矩阵重新设置(覆盖)当前变换的方法

语法

ctx.setTransform(scaleX, skewX, skewY, scaleY, translateX, translateY);

参数

参数类型描述
scaleX<number>水平缩放
skewX<number>水平倾斜
skewY<number>垂直倾斜
scaleY<number>垂直缩放
translateX<number>水平移动
translateY<number>垂直移动

transform()

使用矩阵多次叠加当前变换

语法

ctx.transform(scaleX, skewX, skewY, scaleY, translateX, translateY);

参数

参数类型描述
scaleX<number>水平缩放
skewX<number>水平倾斜
skewY<number>垂直倾斜
scaleY<number>垂直缩放
translateX<number>水平移动
translateY<number>垂直移动

translate()

对当前坐标系的原点(0, 0)进行变换

语法

ctx.translate(x, y);

参数

参数类型描述
x<number>水平坐标平移量
y<number>竖直坐标平移量

合成

globalAlpha

设置全局画笔透明度

语法

ctx.globalAlpha = value;

参数

参数类型描述
value<number>数字在 0.0 (完全透明)和 1.0 (完全不透明)之间。 默认值是 1.0

Canvas 状态

restore()

恢复之前保存的绘图上下文

语法

ctx.restore();

save()

保存当前的绘图上下文

语法

ctx.save();

setLineDash()

设置虚线样式的方法

语法

ctx.setLineDash(segments);

参数

参数类型描述
segments<Array>描述交替绘制线段和间距长度的数字

lineDashOffset

设置虚线偏移量的属性

语法

ctx.lineDashOffset(value);

参数

参数类型描述
value<number>偏移量是 float 精度的数字。 初始值为 0.0

globalCompositeOperation

设置要在绘制新形状时应用的合成操作的类型。

语法

ctx.globalCompositeOperation(type);

参数

参数类型描述
type<string>标识要使用的合成或混合模式操作的字符串

属性值

描述
source-over默认。在目标图像上显示源图像。
source-atop在目标图像顶部显示源图像。源图像位于目标图像之外的部分是不可见的。
source-in在目标图像中显示源图像。只有目标图像内的源图像部分会显示,目标图像是透明的。
source-out在目标图像之外显示源图像。只会显示目标图像之外源图像部分,目标图像是透明的。
destination-over在源图像上方显示目标图像。
destination-atop在源图像顶部显示目标图像。源图像之外的目标图像部分不会被显示。
destination-in在源图像中显示目标图像。只有源图像内的目标图像部分会被显示,源图像是透明的。
destination-out在源图像外显示目标图像。只有源图像外的目标图像部分会被显示,源图像是透明的。
lighter显示源图像 + 目标图像。
copy显示源图像。忽略目标图像。
xor使用异或操作对源图像与目标图像进行组合。

shadowBlur()

阴影的模糊级别,数值越大越模糊,默认值为 0

语法

ctx.shadowBlur(blur);

参数

参数类型描述
blur<number>描述模糊效果程度的,float 类型的值。默认值是 0。

shadowColor

可以转换成 CSS值的 DOMString 字符串。 默认值是 fully-transparent black.

语法

ctx.shadowColor(color);
ctx.shadowColor('#000000')
ctx.shadowColor('rgb(188,219,236)')

参数

参数类型描述
color<string>CSS color,模糊的颜色

shadowOffsetX

阴影水平偏移距离的 float 类型的值。默认值是 0。

语法

ctx.shadowOffsetX(offsetX);

参数

参数类型描述
offsetX<number>阴影在水平方向的偏移

shadowOffsetY

阴影垂直偏移距离的 float 类型的值。 默认值是 0。

语法

ctx.shadowOffsetY(offsetY);

参数

参数类型描述
offsetY<number>阴影在竖直方向的偏移

CanvasGradient

概述

渐变对象,通过 new CanvasGradient() 创建

语法

const gradient = new CanvasGradient(0,0,200,0);
gradient.addColorStop(0,"green");
gradient.addColorStop(1,"white");

方法

CanvasGradient.addColorStop()

该方法在 CanvasGradient 对象上添加一个由偏移值和颜色值指定的断点

语法

gradient.addColorStop(offset, color);

参数

参数类型描述
offset<number>01之间的值, 表示渐变点在起点和终点中的位置
color<string>CSS Color