当前位置: 首页 > news >正文

Android Matrix的使用详解(通过矩阵获取到图片缩放比例和角度)

网上查了好久相关的资料,都没有明确的答案。最终通过多次测试结果,结合安卓定义的矩阵含义,推算出来矩阵的数学含义以及相关的计算公式

1.获取Matrix矩阵:

Matrix matrix = new Matrix(); 
float[] matrixValues = new float[9];
matrix.getValues(matrixValues);

2.通过矩阵计算图片旋转角度:

float rotationRadians = Math.atan2(matrixValues[Matrix.MSKEW_Y], matrixValues[Matrix.MSCALE_Y]); 
float rotationDegrees = (float) Math.toDegrees(rotationRadians);

3.通过矩阵计算图片缩放比例:

float scaleX = (float) Math.sqrt(matrixValues[Matrix.MSCALE_X] * matrixValues[Matrix.MSCALE_X] + matrixValues[Matrix.MSKEW_X] * matrixValues[Matrix.MSKEW_X]);
float scaleY = (float) Math.sqrt(matrixValues[Matrix.MSKEW_Y] * matrixValues[Matrix.MSKEW_Y] + matrixValues[Matrix.MSCALE_Y] * matrixValues[Matrix.MSCALE_Y]);

4.原理

矩阵含义:

scaleX * cosθ   -scaleX * sinθ   0

scaleY * sinθ     scaleY * cosθ   0

0                       0                       1

http://www.lryc.cn/news/232364.html

相关文章:

  • 【Spring】bean的生命周期
  • C#运算符重载
  • 【L2GD】: 无环局部梯度下降
  • 2023-11-14 LeetCode每日一题(阈值距离内邻居最少的城市)
  • AdServices归因和iAd归因集成
  • 关于 内部类 你了解多少?(详解!!)
  • CNVD-2021-09650:锐捷NBR路由器(guestIsUp.php)RCE漏洞复现 [附POC]
  • 如何在Docker部署Draw.io绘图工具并远程访问
  • Android APK打包的过程主要步骤
  • 吃透 Spring 系列—MVC部分
  • Java面试题(每天10题)-------连载(32)
  • HDP集群Kafka开启SASLPLAINTEXT安全认证
  • 判断上颌下颌的stl模型坐标轴是否正常
  • C/C++---------------LeetCode第1189. “气球” 的最大数量
  • Arthas(阿尔萨斯)--(三)
  • 《变形监测与数据处理》笔记/期末复习资料(择期补充更新)
  • Linux:进程替换和知识整合
  • React组件在什么情况下会重新渲染
  • 云ES容灾方案
  • Golang 中的 Context 包
  • nginx服务器
  • 电脑常用快捷键
  • 吴恩达《机器学习》8-3->8-4:模型表示I、模型表示II
  • 数据结构-二叉树力扣题
  • node 第十八天 中间件express-session实现会话密钥
  • 【机器学习基础】机器学习入门(1)
  • 赶快来!程序员接单必须知道的六大注意事项!!!
  • 【C++】日期类实现,与日期计算相关OJ题
  • 前端404页面的制作
  • 深兰科技轮腿家用AI机器人荣获“2023年度城市更新科创大奖”