您现在的位置: 中国IT实验室 >> 游戏开发 >> 开发文档 >> 文章正文
任意角度的高质量的快速的图像旋转
来源:21世纪经济报道 作者:佚名 时间:2007-5-10

  为了便于讨论,这里只处理32bit的ARGB颜色;

  代码使用C++;涉及到汇编优化的时候假定为x86平台;使用的编译器为vc6;

  为了代码的可读性,没有加入异常处理代码;

  测试使用的CPU为赛扬2G;

  (一些基础代码和插值原理的详细说明参见作者的《图形图像处理-之-高质量的快速的图像缩放》系列文章)

  速度测试说明:

  只测试内存数据到内存数据的缩放

  测试图片都是800*600旋转到1004*1004; fps表示每秒钟的帧数,值越大表示函数越快

  A:旋转原理和旋转公式:

  推导旋转公式:

  旋转示意图

  有: tg(b)=y/x ——(1)

  tg(a+b)=y'/x' ——(2)

  x*x + y*y = x'*x' + y'*y' ——(3)

  有公式:tg(a+b) = ( tg(a)+tg(b) ) / ( 1-tg(a)*tg(b) ) ——(4)

  把(1)代入(4)从而消除参数b;

  tg(a)+y/x = y'/x'*( 1-tg(a)*y/x ) ——(5)

  由(5)可以得x'=y'*(x-y*tg(a))/( x*tg(a)+y ) ——(6)

  把(6)代入(3)从而消除参数x',化简后求得:

  y'=x*sin(a)+y*cos(a); ——(7)

  把(7)代入(6),有:

  x'=x*cos(a)-y*sin(a); ——(8)

  OK,旋转公式有了,那么来看看在图片旋转中的应用;

[1] [2] [3] [4] [5] [6] [7] 下一页  

收藏本文 责编:Kittoy 


相关文章
没有相关文章
推荐文章


 精彩友情推荐
·神州数码交换机
·神州数码交换机价格
·神州数码网络交换机
·netgear交换机
·网件交换机
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
 基础入门  开发文档
 最新推荐
  多数的Windows程序都需要Windows.h和Windowsx.h这两个头文件,要确保使用它们。当然,你还需要其它......
游戏引擎演化史
在Windows上安装OGRE的方法
关于滤镜遮罩概念,Sobel 遮罩
游戏开发新手入门之Windows编程
游戏开发新手入门之位图化图形
教你实现卡通渲染的另类勾边方法
游戏设计大师谈如何成为一名游戏设
Visual C#编写 3D游戏框架示例
真正的 Java 学习从入门到精通
游戏开发经验——游戏开发的基本常
  针对于移动新出台的政策,需要尽快地把我们公司的游戏对应到不同的手机平台,这是针对市场策略的有利调整............
Quake-III代码里神奇的浮点开方函数
基于Dialogue的MFC程序调用DirectX
关于Kjava手机平台移植可行性报告
网络游戏的数据传输处理和防火墙穿
浅谈网游的数据传输处理和防火墙穿
向量几何在游戏编程中的使用(六)
向量几何在游戏编程中的使用(五)
向量几何在游戏编程中的使用(四)
向量几何在游戏编程中的使用(三)
向量几何在游戏编程中的使用(二)
  培训中心