View 通过如下操作,在平移、旋转、缩放后,其本身的 left、top、right、bottom、width、height是没有变化的。
平移:setTranslationX(), setTranslationY() ;
旋转:setRotationX(), setRotationY() ;
缩放:setScaleX(), setScaleY() 。

在三种操作后,获取新的 ltrb、w、h 就需要重新计算了

/*** author:  stone* email:   aa86799@163.com** view 平移、旋转、缩放 变换后,计算新的 ltrb*/
fun mapPoints(model: View): FloatArray {val l = model.leftval t = model.topval r = model.left + model.widthval b = model.top + model.heightval dst = floatArrayOf(l, t, r, b)val matrix = Matrix()val cx = l + (r - l) / 2val cy = t + (b - t) / 2matrix.postTranslate(model.translationX, model.translationY)matrix.postRotate(model.rotate, cx, cy) // 以view的中心点旋转matrix.postScale(model.scaleX, model.scaleY, cx, cy)matrix.mapPoints(dst)return dst
}

更新(2023-04-10):
最近写了个示例,带有旋转操作后,mapPoints(),映射后的 左上和右下顶点是正常的、而右上和左下是不正常的。
直接用mapRect() 结果就是所预期的。

Android View 通过平移、旋转、缩放后,顶点映射相关推荐

  1. Unity 触屏手势控制Camera平移旋转缩放

    Unity 触屏手势控制Camera平移旋转缩放 实现思路 单点触屏,位移增量控制相机平移: 两点触屏,两点位移控制相机前后移动(缩放):两点中一点不位移控制相机绕点旋转: 实现需要的API Touc ...

  2. 解决echart地图在平移和缩放后,重新生成地图,这时生成的地图不在容器中间,会跑到容器外面去。

    解决echart地图在平移和缩放后跑到容器外面去 写在前面 解决办法 实现效果图 外卖红包优惠券在哪里领,那些天天都可以领外卖优惠券的公众号是真的吗? 写在前面 用echart做一个中国地图(可缩放和 ...

  3. 文本框固定任意一顶点后,拖动相对点任意旋转缩放,计算缩放后顶点坐标

    问题描述 鼠标拖动缩放文本框的时候,需要重新计算缩放后文本框四个顶点的坐标,然后重新绘制新文本框 在Office上,缩放文本框的操作一般是鼠标拖动八个控制点其中一个,然后固定住与其相对的控制点的位置, ...

  4. 三维空间中的几何变换-平移旋转缩放

    前言 前段时间由于项目需要,深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记. 文章内容部分引用并参考了下面的博客: http://netclass.csu.ed ...

  5. Unity矩阵平移旋转缩放Matrix4x4

    Unity中的矩阵(Matrix4x4) 最近在研究帧同步定点数物理系统中需要自定义定点数矩阵,所以在这里分享下基础的矩阵案例旋转.平移.缩放.(注意这里本文中的transform组件式基于unity ...

  6. WebGL编程指南-24 同时使用漫反射光和环境反射光、立方体平移旋转缩放变换时漫反射光和环境反射光处理

    1.demo效果 此效果是上一章绘制的立方体基础上,向Y轴方向平移一个单位,然后绕Z轴旋转30度. 如上图,归纳一下物体坐标变换法向量变化的规律如下 平移变换, 法向量不会改变 旋转变换, 大多数情况 ...

  7. 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放

    给定一个二维点(x, y),那么形如(kx, ky, k)的所有三元组就都是等价的,它们就是这个点的齐次坐标(homogeneous).齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指 ...

  8. 三维坐标要建一个4*4的矩阵?平移 旋转 缩放

    移植不知道三维物体的旋转平移缩放和矩阵的关系.找到这篇文章借鉴一下. 转自:https://blog.csdn.net/ALLENJIAO/article/details/80348362 怎么平移一 ...

  9. Cesium变换3DTiles的位置(平移旋转缩放)

    function add3DTilesetDataTrans(url) {             //viewer1.scene.globe.depthTestAgainstTerrain = tr ...

最新文章

  1. RHEL7系统管理之内核管理
  2. PNAS最新研究揭示大脑如何学习语言
  3. 可输入过滤和直接选择的select控件
  4. 边缘指示函数matlab,matlab图像处理——傅立叶变换边缘提取
  5. vi 编辑器命令 (share)
  6. 手动释放linux服务器内存
  7. java根据id查询名字_Mybatis根据id查询用户信息
  8. 电子计算机X线体层摄影,电子计算机X线体层摄影检查诊断乳腺肿块的价值
  9. 沃特世推出SELECT SERIES MRT多反射飞行时间质谱平台,树立高分辨质谱性能新标杆
  10. Zabbix监控系统系列之九:监控网络设备指定接口流量
  11. [Z] 通天塔导游:各种编程语言的优缺点
  12. Excel忽略0值求平均分,将某一列分类后求平均值
  13. Apple设备型号名称映射表
  14. 前端进度报告(2018.6.3)
  15. NUC980开源项目40-PLC远程下载/内网穿透(非技术)
  16. java 案例 一千例,【发现问题、解决问题系列案例分享(二十一)】 一个自动执行命令,每天节省一千分钟!...
  17. MySQL详解----------海量数据分页查询优化
  18. 安卓开发第一个apk
  19. 二进宫的爱美客,再冲击IPO背后的雷区
  20. 面向规划衔接的完整街道详细分类方法

热门文章

  1. PPT学习——1.局部高亮,其余变暗,凸显内容的方法
  2. ABB超高效非晶合金干式变压器ECODRY
  3. [备忘] 查看浏览器中flash swf的trace调试输出
  4. javascript实现类似于淘宝的星级评价
  5. 腾讯云mysql被黑_他被推下悬崖差点惨死,却意外得到MySQL的秘密......
  6. 【项目实践】关于维修电子设备的几点建议和经验
  7. 5G智慧医疗 5G医疗接入网关
  8. 基于卷积神经网络的信用卡欺诈侦测
  9. 领导力来自天赋?还是学习?
  10. 知识星球《玩转股票量化交易》之Backtrader量化框架的使用说明