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


      在自定义控件和利用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度。

  • 相关阅读:
    为什么要使用Handler
    使用Java中的Timer和TimerTask
    Top子句对查询计划的影响
    一个单表死锁的示例
    tracer token 追踪标记
    DDL Trigger
    事物复制的troubleshooting 1
    在分发服务器上查看信息
    将windows 2003 sp2的cluster升级到windows 2008 r2
    DistributionDB过大的原因
  • 原文地址:https://www.cnblogs.com/bokeofzp/p/6744827.html
Copyright © 2020-2023  润新知