关于画布canvas的rotate()和translate()的正确理解
来源:互联网 发布:网络教育第二本科证书 编辑:程序博客网 时间:2024/06/03 21:54
本以为已经理解了rotate和translate,但看过Android Canvas编程:对rotate()和translate()两个方法的研究 这篇文章后,发现原来以前的理解是一个误区。
关于手机屏幕的可视范围
可见范围永远都是x/y轴正方向交汇的地方。
关于rotate
假设现在我们的布局在没有进行旋转时是这样滴:紫色是我们的画布,即描绘控件的区域,红色方块是我们的控件,布局在屏幕的左上角。
那么,这样对红色控件在onDraw中进行canvas.rotate(-90) 是什么效果呢?正确的理解是把坐标系按照原点逆时针旋转。
那么,执行该方法后,会是这样子滴。这时,我们的画布,即控件已经超出了我们的可视范围,为了使我们可见,需要对canvas进行平移。
关于translate
canvas.translate(dx,dy) 是怎么移动的呢。
我们的移动还是针对画布的。当translate里面的x值为负数时,画布将往左移动;y值为负数时,往上移动。
那么,为了让控件旋转后能出现在我们的视野中,需要对控件的画布进行canvas.translate(-getHeight(),0)
其中,getHeight是控件的高度。
0 0
- 关于画布canvas的rotate()和translate()的正确理解
- Android画布canvas rotate,translate的理解
- html5的canvas对象的translate方法和rotate方法
- HTML5 canvas绘制arcTo、translate和rotate的画法探索
- Android Canvas rotate()和translate()两个方法的研究
- Android Canvas rotate()和translate()两个方法的研究
- canvas的translate、scale、rotate等方法
- canvas的translate、scale、rotate等方法
- canvas的translate、scale、rotate等方法
- canvas下的save(),restore(),translate(),rotate()
- canvas rotate()画布的旋转详解
- Android的canvas.rotate()与canvas.translate研究
- 关于HTML5的画布canvas
- Android Canvas编程:对rotate()和translate()两个方法的研究
- Android Canvas编程:对rotate()和translate()两个方法的研究
- Android Canvas编程:对rotate()和translate()两个方法的研究
- Android canvas的save restore translate rotate用法介绍
- Android canvas的save restore translate rotate用法介绍
- 通过URL传递参数,并解析
- 发送垃圾邮件的问题
- 使用面向对象的技术创建高级 Web 应用程序
- oracle 锁定、对比统计信息
- java oracle oci方式连接
- 关于画布canvas的rotate()和translate()的正确理解
- Win32环境下代码注入与API钩子的实现
- block的使用与内存管理
- 电脑键盘上方的功能键作用
- Qt 线程
- linux find的用法
- 分析Android 根文件系统启动过程(init守护进程分析)
- js清空Form(基于jquery)
- Hibernate和Mybatis的区别