Android零点一度的区别——Matrix

2013-07-07

 

导语:Matrix是android中对图像绘制的处理(旋转、放缩、平移等等),貌似书本翻页就是用这种方式处理的


正文:

1、基于坐标(px,py)旋转degrees度, postRotate(float degrees, float px, float py)

2、基于坐标(px,py)进行按照(sx,sy)比例进行放缩, postScale(float sx, float sy, float px, float py)

====

以上两种方法都正常,但是当两者一起用的时候,在degrees为180度的时候,就有问题了。图像不能旋转180度了,反而是没有旋转的状态。

postRotate(180f, w/2, h/2);

postScale(0.48f, 0.48f, w/2, h/2);

Matrix: 180: Matrix{[-0.48, -0.0, 480.0][0.0, -0.48, 561.0][0.0, 0.0, 1.0]}

====

最后用了笨方法,用了180.1度就OK了,大学的线性代数也忘了差不多了,懒得去研究了。

 

postRotate(180.1f, w/2, h/2);

postScale(0.48f, 0.48f, w/2, h/2);

Matrix: 180.1f : {[-0.47999924, 8.3774904E-4, 479.68542][-8.3774904E-4, -0.47999924, 561.4186][0.0, 0.0, 1.0]}


以上!

 

结尾: 1)坚持写写博客

      2)继续学习开发

      3)我是IT程序猿

 

posted @ 2013-07-08 14:52  坚固66  阅读(346)  评论(0编辑  收藏  举报