canvas 2D画图尺寸的问题的问题?
按官方类似例子,画一个圆:
onReady() {
const query = wx.createSelectorQuery()
query.select('#myCanvas')
.fields({
node: true,
size: true
})
.exec((res) => {
const canvas = res[0].node
const ctx = canvas.getContext('2d')
const dpr = wx.getSystemInfoSync().pixelRatio
canvas.width = res[0].width * dpr
canvas.height = res[0].height * dpr
ctx.scale(dpr, dpr)
// canvas.width = res[0].width
// canvas.height = res[0].height
//画一个实心圆
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI, false);
ctx.fillStyle = "red"; //填充颜色,默认是黑色
ctx.fill(); //画实心圆
ctx.closePath();
})
}
我的问题是:
若将:
canvas.width = res[0].width * dpr canvas.height = res[0].height * dpr ctx.scale(dpr, dpr) 替换成: canvas.width = res[0].width canvas.height = res[0].height 绘制结果一模一样,但若将ctx.scale(dpr, dpr)去掉,图像缩小一倍(dpr=2),按说去掉ctx.scale(dpr, dpr)后,只是画布尺寸增大一倍罢了。 为什么会这样?绘制结果和画布大小还有关系?