目前,蓝紫对 2D 渲染(CanvasRenderingContext2D)没有做过多的封装和扩展,我们可以使用原生 API 进行二维(甚至三维)绘图和渲染(这些 API 已经设计的非常棒了),特别适合矢量图形绘制,当然,也可以进行三维渲染。可参考向导程序 演示动画,该程序使用的就是 canvas2d 进行的渲染。
const canvas = Lan.canvas2d(1800, 1200, {options...});
我们可以在 options
里传入一些配置参数:
boolean
,如果设置为 false
可以加速绘制透明的内容和图片;boolean
,是否需要高频率读取(getImageData
)图像内容。原生 CanvasRenderingContext2D 对象。
重置 transform
、globalAlpha
以及 globalCompositeOperation
并执行图像清除操作。如果没有提供 color 参数,画布会被清除为全透明。这里的 color
可以是字符串,比如 'black'
、'#fff'
、'rgba(255,255,255,.5)'
,也可以是数组或对象,比如 [255, 0, 0]
、{r:255, a:.5}
,同时,它也可以是一个函数,其形式如下:
(px, py) => {
var r = 0, g = 0, b = 0; // calculate color components
return [r, g, b];
};
传入像素坐标,返回颜色值,比如 [128, 255, 255]
或 {r:255, a:128}
。
测量文字的各种尺寸,返回 TextMetrics 对象。其中 font
参数可选。
缺省的 arc 函数至少需要 5 个参数,不方便画圆。