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>0到1之间的值, 表示渐变点在起点和终点中的位置
color<string>CSS Color