zoukankan      html  css  js  c++  java
  • 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度。

  • 相关阅读:
    Chapter 4
    Chapter 3
    chapter 2
    Python编程指南 chapter 1
    BASE64 编码和解码
    生成 PDF 全攻略【2】在已有PDF上添加内容
    IDEA 和 Eclipse 使用对比
    web 前端常用组件【06】Upload 控件
    聊聊 Web 项目二维码生成的最佳姿势
    依附大系统 【数据实时获取】解决方案
  • 原文地址:https://www.cnblogs.com/bokeofzp/p/6744827.html
Copyright © 2011-2022 走看看