zoukankan      html  css  js  c++  java
  • Android开发之Canvas rotate方法释疑

      Canvas的rotate()函数本应该是很简单的一个函数,但是由于api手册言之不详,使用中难免有吃不准的地方。下面所记录的几点,都是我在使用中所迷惑过的问题,特此记录。

      1,坐标原点在哪里?

      如果没有设置,那么旋转原点就是左上角。

    canvas.rotate(ang);

      如果要以画布中心点旋转,请以下面格式调用:

    canvas.rotate(ang, getMeasuredWidth() / 2, getMeasuredHeight() / 2);

      其中ang是角度,不是弧度,比如正时针旋转90度,那就设置ang=90。

      2,旋转的是什么?

      这个开始最迷惑人,根据我的实验,旋转的就是绘图的坐标系,而不是画布! 因此,你如果旋转之后不进行绘图操作,而且也不调用restore(),你会发现什么改变也没有。 如果有绘图操作,那么只有rotate之后的绘制是受影响的。

      3,零度角在哪里?

      这个问题倒是和我所认为的一致,坐标原点x轴正向,和x轴平行的角度是零度角!

  • 相关阅读:
    9-15
    9-5
    8-26
    8-24
    7-20
    7-17
    我离职后要干些什么
    6-18
    5-28
    5-20
  • 原文地址:https://www.cnblogs.com/dajianshi/p/5012513.html
Copyright © 2011-2022 走看看