小程序API能力集成指南——画布API汇总(五)

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();

👉 立即开发

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值