微信小程序之画布的旋转,你搞懂了吗?

最近在学习微信小程序的时候,学习到画布时,旋转功能把我有点搞糊涂了。因为我一直以为,旋转的是画布,但其实,旋转的是坐标系。

坐标系方向为:画布向右为x,向左为-x,向上为-y,向下为y

程序示例如下:

    ctx.translate(width/2,height/2) //重新定位坐标原点为画布中心

    ctx.rotate( 30 / 180 * Math.PI);  //画布旋转30°
    ctx.beginPath();          //绘制线条1
    ctx.moveTo(0, -115);  
    ctx.lineTo(0, -120);  
    ctx.stroke();  
      
    ctx.beginPath();          //绘制线条2
    ctx.moveTo(0, -105);  
    ctx.lineTo(0, -110);  
    ctx.stroke();  

    ctx.draw();

显示结果如下:

程序中,仅调用过一次画布旋转,然后绘制了两个线条,两个线条x坐标都为0,线条处于y轴上。且y轴明显是旋转过的。

程序示例2:

   ctx.translate(width/2,height/2) //重新定位画布中心为原点

    ctx.rotate( 30 / 180 * Math.PI); //画布旋转30° 
    ctx.beginPath();                  //绘制线条1
    ctx.moveTo(0, -115);  
    ctx.lineTo(0, -120);  
    ctx.stroke();  
      
    ctx.rotate( 30 / 180 * Math.PI);    //画布再旋转30°  
    ctx.beginPath();                    //绘制线条2
    ctx.moveTo(0, -105);  
    ctx.lineTo(0, -110);  
    ctx.stroke();  

    ctx.draw();

显示结果如下:

示例2与示例1相比,线条坐标完全没有改变,仅仅是在线条2绘制前旋转了30°。但是线条1并没有跟着旋转。由此可见,画布的旋转其实应该是坐标系的旋转。而之前已经产生的图像,是不会跟着旋转的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值