码迷,mamicode.com
首页 > 移动开发 > 详细

android canvas rotate 旋转的一些总结(旋转的一些注意点)

时间:2017-04-21 19:15:12      阅读:515      评论:0      收藏:0      [点我收藏+]

标签:规律   canvas   画布   top   style   利用   注意   自定义   gre   

  在自定义控件和利用surfaceview时候利用serfaceHolder锁定画布画图做游戏的时候,在绘制tank的图片的时候需要根据tank的方向来绘制,因此就用到canvas的rotate(float degrees)方法,试过很多次都导致屏幕上绘制的图片都乱七八糟,不是按照想象的来的。经过了很多次的尝试终于掌握了个规律:

  canvas在绘制的时候旋转遵循:

  1、canvas.draw(bitmap , left , top , paint)中left 、 top始终是按照画布的坐标来的,不管如何旋转。

  2、当我们调用rotate(degrees)时,首先是将前面绘制的图像显示在屏幕上(此时屏幕显示同canvas布局是一致的),然后旋转屏幕,按照canvas的坐标绘制后面的图像。

  3、当我们再次调用rotate(degress)的时候,就将旋转一次后面绘制的图像显示在窗口,(注意,因为屏幕旋转过一次,因此屏幕显示的第一次旋转后的图片相对屏幕是旋转的)。

  4、依次循环,每一次旋转画布,系统就会将绘制的图像绘制到屏幕,然后继续后面的绘制。

  

node: 为了不致于屏幕的混乱,同opengl绘图一样,当我们在绘制自己旋转后的图像时候将canvas复原,即如果说你旋转了15度,绘制完了你想绘制的图片时就再次旋转-15度。

android canvas rotate 旋转的一些总结(旋转的一些注意点)

标签:规律   canvas   画布   top   style   利用   注意   自定义   gre   

原文地址:http://www.cnblogs.com/bokeofzp/p/6744827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!