使用最新的Canvas 2d绘制直线,不同的位置,有些模糊有些清晰,如何解决?
发布于 7 年前 作者 along 8269 次浏览 来自 官方Issues

我在使用Canvas 2d绘制直线时,不同位置的直线,有些是模糊的,有些是清晰的,请问这个问题怎么解决

在电脑的效果图如下(真机同样出现这个问题(iPhone 6s , 最新微信版本,iOS 10.3系统)):

代码如下:

<canvas type="2d" id="myCanvas" />

onReady: function () {
    const query = wx.createSelectorQuery()
    query.select('#myCanvas')
        .fields({ node: true, size: true })
        .exec((res) => {
          const width = res[0].width
          const height = res[0].height

          const canvas = res[0].node
          const ctx = canvas.getContext('2d')

          const dpr = wx.getSystemInfoSync().pixelRatio
          canvas.width = width * dpr
          canvas.height = height * dpr
          ctx.scale(dpr, dpr)

          // 把路径移动到画布中的坐标(10, 10)点
          ctx.moveTo(10, 10)
          // 新增一个新点(100, 10),创建一条从(10, 10)到(100, 10)的线条
          ctx.lineTo(100, 10)
          // 路径移动到画布中的坐标(10, 5)点
          ctx.moveTo(10, 70)

          // 新增一个新点(100, 5), 创建一条从(10, 50)到(100, 50)的线条
          ctx.lineTo(100, 70)
          // 需要用stroke()方法来画线条
          ctx.stroke()
        })
  },
回到顶部