栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

canvas使用Affine,实现任意点变换(旋转,位移,缩放)

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

canvas使用Affine,实现任意点变换(旋转,位移,缩放)

矩阵入门教程及文件获取地址

1.首先我们创建canvas标签,为了方便查看效果,我们为canvas添加一下样式,这里图片我使用的是1920*1080的尺寸


 canvas {
     display: block;
     border: 1px solid;
     width: 480px;
     height: 270px;
     margin: 100px auto;
 }
 //不做处理 将图片绘制到画布
 let image = document.createElement("img");
 let context = canvas.getContext("2d");
 image.src = "http://static.atvideo.cc/veleap/templateDemo/2021/04/06/16/30aawseyhgae.png";
 image.onload = function () {
     context.drawImage(
  image,
  0,
  0,
     );
 }

2.引入Affine.js 文件


3.使用矩阵中心点旋转缩放

 let image = document.createElement("img");
 let context = canvas.getContext("2d");
 image.src = "http://static.atvideo.cc/veleap/templateDemo/2021/04/06/16/30aawseyhgae.png";
 image.onload = function () {
     const imageWidth = image.width,
  imageHeight = image.height,
  centerPointX = imageWidth / 2,
  centerPointY = imageHeight / 2;
     let a = {
  x: centerPointX,
  y: centerPointY,
     },
  p = {
      x: centerPointX,
      y: centerPointY,
  },
  s = {
      x: 0.5,
      y: 0.5,
  },
  r = 45;

     let matrix = new Affine();
     matrix.set(a, p, s, r);
     context.setTransform(matrix.mA, matrix.mB, matrix.mC, matrix.mD, matrix.mE, matrix.mF);
     context.drawImage(
  image,
  0,
  0,
     );
 }

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号