游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3257|回复: 7

如何旋转2D图片

[复制链接]

33

主题

101

帖子

107

积分

注册会员

Rank: 2

积分
107
发表于 2007-10-27 13:05:00 | 显示全部楼层 |阅读模式
就是如何操作颜色数据,让一个图看起来是旋转了的,假设目前一个页面很大,而其中1000 1000 1100  1100 这么大范围内的一个图 要旋转一个角度a  来显示  操作颜色数据可以实现吗?
比如以这个矩形的中心作为圆心,然后进行旋转,利用平面几何知识应该比较容易解决,
具体有什么方法,高手可以说一下吗?
比如photoshop里面就可以任意角度旋转一个图像,他是怎么操作颜色数据的?
另外有人说自己操作颜色数据旋转几乎不可能,这是为什么呢?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2007-10-27 13:53:00 | 显示全部楼层

Re:如何旋转2D图片

不是不可能!只是很慢!

PHOTOSHOP是图像处理软件,要的是效果,快慢不管。

而游戏中要求很快的处理。

2

主题

132

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2007-10-27 14:05:00 | 显示全部楼层

Re:如何旋转2D图片

你用的什么做游戏啊?vc++和directx么?这样就快了啊,设置旋转矩阵就是了。还有如果你实在要自己操作颜色数据来旋转,就用shader吧,好像也就只有那个可以达到很快的效果

33

主题

101

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 2007-10-27 20:41:00 | 显示全部楼层

Re:如何旋转2D图片

确实很慢,用到的数学计算太多,而且都是计算机不擅长的运算~我尝试用简单的运算去逼近~

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2007-10-27 23:14:00 | 显示全部楼层

Re:如何旋转2D图片

这个用shader应该很好作

33

主题

101

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 2007-10-28 13:36:00 | 显示全部楼层

Re:如何旋转2D图片

一些函数 比如 cos  sqrt  atan  很慢 于是在网上找了一些知识,原来这些函数 都有优化
比如sqrt 在雷神3里就优化的很快,
然后一测试 10万个像素点计算花了62毫秒 这个速度能接受吗?
另外 说 shader能实现  那shader里到底是怎么实现的呢?有没有考虑过?

某人不是说,写程序 能自己实现的就自己实现吗?

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2007-10-28 15:32:00 | 显示全部楼层

Re:如何旋转2D图片

你实在做图像处理软件
还是游戏?
如果是游戏的话,在dx里对sprite来说,一个矩阵乘法就实现了,想复杂一点的就shader

33

主题

101

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 2007-10-28 15:51:00 | 显示全部楼层

Re:如何旋转2D图片

当然是游戏,就是一个矩阵乘法,但是元素很多啊,那么多像素点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-17 00:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表