以下是一个简单的示例,演示了如何使用 save 和 restore 方法:
Page({
onReady: function () {
const ctx = wx.createCanvasContext('myCanvas');
// 绘制第一个矩形
ctx.setFillStyle('red');
ctx.fillRect(20, 20, 150, 100);
// 保存绘图上下文的状态
ctx.save();
// 平移坐标原点,绘制第二个矩形
ctx.translate(100, 100);
ctx.setFillStyle('blue');
ctx.fillRect(0, 0, 150, 100);
// 恢复绘图上下文的状态
ctx.restore();
// 绘制第三个矩形,与第一个矩形位置相同
ctx.setFillStyle('green');
ctx.fillRect(200, 20, 150, 100);
// 绘制到 canvas 上
ctx.draw();
}
});
在这个示例中,我们首先绘制了一个红色的矩形。然后使用 save 方法保存了当前绘图上下文的状态。接着,通过 translate 方法平移了坐标原点,绘制了一个蓝色的矩形。最后,通过 restore 方法恢复了绘图上下文的状态,然后绘制了一个绿色的矩形。由于 restore 恢复了上下文的状态,第三个矩形的位置是相对于初始状态的。
这种方式可以确保在进行一些变换之后,后续的绘制不会受到前面变换的影响,从而更加灵活地控制绘图效果。
转载请注明出处:http://www.zyzy.cn/article/detail/1007/微信小程序