canvas rotate中心点问题

 

ctx = document.getElementByIdx_x_x_x('canvas').getContext('2d'); 
   ctx.fillStyle = "rgb(250,0,0)";
   ctx.save();
   ctx.translate(50,50); //这个translate(50,50)发生在rotate()之前,其目的是将旋转点从默认点(0,0),移动到(50,50),下面紧跟着的rotate就是按照这个点来转
   //rotate方法的旋转点完全是按照[在其上\紧跟着它的]translate来确定旋转点的...
  ctx.rotate(-Math.PI/8);
  ctx.translate(-50,-50);//这个translate是在rotate之下,也就是rotate已经转过了再执行translate(-50,-50),它其实也是将坐标点从(50,50)重新移到了(0,0),紧跟在他下面的rotate旋转中心就是按照(0,0)来旋转的
  ctx.fillRect(50,50,100,200);
  
   //ctx.beginPath();
  ctx.fillStyle="rgb(0,255,0)"
   ctx.rotate(-Math.PI/6);
  ctx.fillRect(50,50,100,200);
  
   ctx.restore();
   ctx.fillStyle = "rgb(0,0,250)";
   ctx.fillRect(50,50,5,5);

  总结:这里的translate就是移动中心点的.旋转中心默认是在canvas的左上角.

canvas <wbr>rotate中心点问题详解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值