老莫的笔记本  
  
查看: 1174|回复: 1

Canvas translate 变形

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2018-12-20 23:22:58 | 显示全部楼层 |阅读模式
首先先声明:
变形——其实本质是移动原点的坐标 ; 例如 ctx.tarnslate(100,100); 就表示原点 X移动100, Y 移动100;
应当结合 save()  与 restore();   保存上下文一切属性; 与 还原上下文一切属性结合使用; 【不可嵌套】
  1. //保存上下文一切属性
  2. ctx.save();
  3. ctx.translate(100,100);
  4. ctx.fillStyle="red";
  5. ctx.fillRect(100,100,100,100);
  6. // 复原
  7. ctx.restore();
  8. // 画圆
  9. ctx.beginPath();
  10. ctx.arc(300,100,100,0,Math.PI*2, true);
  11. ctx.closePath();
  12. ctx.fill();
复制代码

回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-12-22 17:10:03 | 显示全部楼层
  1.   ctx.save();
  2.                 // 坐标圆心 偏移x 150 ,Y 120
  3.                 ctx.translate(200, 200);
  4.                 // 坐标轴 整体旋转 (Math.PI*2/360)*2 2°
  5.                 ctx.rotate((Math.PI*2/360)*(2+pin));
  6.                 // 注意了,这里的图片的坐标轴是负的
  7.                 ctx.drawImage(img,-24,-24,48,48);
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表