CanvasContext
canvas 组件的绘图上下文。
方法如下(4):
setLineWidth
CanvasContext.setLineWidth
CanvasContext.setLineWidth(number lineWidth)
功能描述
设置线条的宽度
参数
number lineWidth
线条的宽度,单位 px
示例代码
const ctx = ty.createCanvasContext('myCanvas');
ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(150, 10);
ctx.stroke();
ctx.beginPath();
ctx.setLineWidth(5);
ctx.moveTo(10, 30);
ctx.lineTo(150, 30);
ctx.stroke();
ctx.beginPath();
ctx.setLineWidth(10);
ctx.moveTo(10, 50);
ctx.lineTo(150, 50);
ctx.stroke();
ctx.beginPath();
ctx.setLineWidth(15);
ctx.moveTo(10, 70);
ctx.lineTo(150, 70);
ctx.stroke();
ctx.draw();
setLineJoin
CanvasContext.setLineJoin
CanvasContext.setLineJoin(string lineJoin)
功能描述
设置线条的交点样式
参数
string lineJoin
线条的结束交点样式
lineJoin 的合法值
值 | 说明 |
---|---|
bevel | 斜角 |
round | 圆角 |
miter | 尖角 |
示例代码
const ctx = ty.createCanvasContext('myCanvas');
ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(100, 50);
ctx.lineTo(10, 90);
ctx.stroke();
ctx.beginPath();
ctx.setLineJoin('bevel');
ctx.setLineWidth(10);
ctx.moveTo(50, 10);
ctx.lineTo(140, 50);
ctx.lineTo(50, 90);
ctx.stroke();
ctx.beginPath();
ctx.setLineJoin('round');
ctx.setLineWidth(10);
ctx.moveTo(90, 10);
ctx.lineTo(180, 50);
ctx.lineTo(90, 90);
ctx.stroke();
ctx.beginPath();
ctx.setLineJoin('miter');
ctx.setLineWidth(10);
ctx.moveTo(130, 10);
ctx.lineTo(220, 50);
ctx.lineTo(130, 90);
ctx.stroke();
ctx.draw();
👉 立即开发。
setLineCap
CanvasContext.setLineCap
CanvasContext.setLineCap(string lineCap)
功能描述
设置线条的端点样式
参数
string lineCap
线条的结束端点样式
lineCap 的合法值
值 | 说明 |
---|---|
butt | 向线条的每个末端添加平直的边缘。 |
round | 向线条的每个末端添加圆形线帽。 |
square | 向线条的每个末端添加正方形线帽。 |
示例代码
const ctx = ty.createCanvasContext('myCanvas');
ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(150, 10);
ctx.stroke();
ctx.beginPath();
ctx.setLineCap('butt');
ctx.setLineWidth(10);
ctx.moveTo(10, 30);
ctx.lineTo(150, 30);
ctx.stroke();
ctx.beginPath();
ctx.setLineCap('round');
ctx.setLineWidth(10);
ctx.moveTo(10, 50);
ctx.lineTo(150, 50);
ctx.stroke();
ctx.beginPath();
ctx.setLineCap('square');
ctx.setLineWidth(10);
ctx.moveTo(10, 70);
ctx.lineTo(150, 70);
ctx.stroke();
ctx.draw();
setLineDash
CanvasContext.setLineDash
CanvasContext.setLineDash(Array.<number>
pattern, number offset)
功能描述
设置虚线样式。
参数
Array.<number>
pattern
一组描述交替绘制线段和间距(坐标空间单位)长度的数字
number offset 虚线偏移量
示例代码
const ctx = ty.createCanvasContext('myCanvas');
ctx.setLineDash([10, 20], 5);
ctx.beginPath();
ctx.moveTo(0, 100);
ctx.lineTo(400, 100);
ctx.stroke();
ctx.draw();
setMiterLimit
CanvasContext.setMiterLimit
CanvasContext.setMiterLimit(number miterLimit)
功能描述
设置最大斜接长度。斜接长度指的是在两条线交汇处内角和外角之间的距离。当 CanvasContext.setLineJoin() 为 miter
时才有效。超过最大倾斜长度的,连接处将以 lineJoin
为 bevel
来显示。
参数
number miterLimit
最大斜接长度
示例代码
const ctx = ty.createCanvasContext('myCanvas');
ctx.beginPath();
ctx.setLineWidth(10);
ctx.setLineJoin('miter');
ctx.setMiterLimit(1);
ctx.moveTo(10, 10);
ctx.lineTo(100, 50);
ctx.lineTo(10, 90);
ctx.stroke();
ctx.beginPath();
ctx.setLineWidth(10);
ctx.setLineJoin('miter');
ctx.setMiterLimit(2);
ctx.moveTo(50, 10);
ctx.lineTo(140, 50);
ctx.lineTo(50, 90);
ctx.stroke();
ctx.beginPath();
ctx.setLineWidth(10);
ctx.setLineJoin('miter');
ctx.setMiterLimit(3);
ctx.moveTo(90, 10);
ctx.lineTo(180, 50);
ctx.lineTo(90, 90);
ctx.stroke();
ctx.beginPath();
ctx.setLineWidth(10);
ctx.setLineJoin('miter');
ctx.setMiterLimit(4);
ctx.moveTo(130, 10);
ctx.lineTo(220, 50);
ctx.lineTo(130, 90);
ctx.stroke();
ctx.draw();
👉 立即开发。
fillText
CanvasContext.fillText
CanvasContext.fillText(string text, number x, number y, number maxWidth)
功能描述
在画布上绘制被填充的文本
参数
string text
在画布上输出的文本
number x
绘制文本的左上角 x 坐标位置
number y
绘制文本的左上角 y 坐标位置
number maxWidth
需要绘制的最大宽度,可选
示例代码
const ctx = ty.createCanvasContext('myCanvas');
ctx.setFillStyle('red');
ctx.fillRect(10, 10, 150, 75);
ctx.draw();
setFontSize
CanvasContext.setFontSize
CanvasContext.setFontSize(number fontSize)
功能描述
设置字体的字号
参数
number fontSize
字体的字号
示例代码
const ctx = ty.createCanvasContext('myCanvas');
ctx.setFontSize(20);
ctx.fillText('20', 20, 20);
ctx.setFontSize(30);
ctx.fillText('30', 40, 40);
ctx.setFontSize(40);
ctx.fillText('40', 60, 60);
ctx.setFontSize(50);
ctx.fillText('50', 90, 90);
ctx.draw();
setTextAlign
CanvasContext.setTextAlign
CanvasContext.setTextAlign(string align)
功能描述
设置文字的对齐
参数
string align
文字的对齐方式
align 的合法值
值 | 说明 |
---|---|
left | 左对齐 |
center | 居中对齐 |
right | 右对齐 |
示例代码
const ctx = ty.createCanvasContext('myCanvas');
ctx.setStrokeStyle('red');
ctx.moveTo(150, 20);
ctx.lineTo(150, 170);
ctx.stroke();
ctx.setFontSize(15);
ctx.setTextAlign('left');
ctx.fillText('textAlign=left', 150, 60);
ctx.setTextAlign('center');
ctx.fillText('textAlign=center', 150, 80);
ctx.setTextAlign('right');
ctx.fillText('textAlign=right', 150, 100);
ctx.draw();
setTextBaseline
CanvasContext.setTextBaseline
CanvasContext.setTextBaseline(string textBaseline)
功能描述
设置文字的竖直对齐
参数
string textBaseline
文字的竖直对齐方式
textBaseline 的合法值
值 | 说明 |
---|---|
top | 顶部对齐 |
bottom | 底部对齐 |
middle | 居中对齐 |
normal | 居中对齐 |
示例代码
const ctx = ty.createCanvasContext('myCanvas');
ctx.setStrokeStyle('red');
ctx.moveTo(5, 75);
ctx.lineTo(295, 75);
ctx.stroke();
ctx.setFontSize(20);
ctx.setTextBaseline('top');
ctx.fillText('top', 5, 75);
ctx.setTextBaseline('middle');
ctx.fillText('middle', 50, 75);
ctx.setTextBaseline('bottom');
ctx.fillText('bottom', 120, 75);
ctx.setTextBaseline('normal');
ctx.fillText('normal', 200, 75);
ctx.draw();
👉 立即开发。