2009-06-22 22 views
0

我有一个直的图像,我想以波形方式变形。可以在iPhone上完成这种类型的摆动图像变形,而不使用openGL

原图:

straight texture http://img145.imageshack.us/img145/107/woodstraight.png

,我希望它看起来像这样(除了动画):

bent texture http://img145.imageshack.us/img145/8496/woodbent.png

我还没有解决的openGL的学习曲线,却又如此如果我可以用Core Animation来做到这一点,那就太好了。

这可能吗?

+0

嘿willc2 - 你需要执行一次变形,还是动画? – 2009-06-22 02:20:53

+0

在一个动画中,不断运行,随着摆动的幅度变化。还会有轮换。 – willc2 2009-06-22 02:48:22

回答

0

不幸的是,我认为这是OpenGL的工作。通过垂直切割图像并绘制具有不同垂直偏移的分段,您可以在Quartz中实现相同的效果......但我认为您无法获得足够好的性能来为其制作动画。 (至少使用1px或2px宽的切片)

您也可以使图像保持不动,并使用Quartz来创建可产生波浪边缘的遮罩路径。不过,这可能看起来不太自然。

据我所知,iPhone上的Core Animation也无法做到这一点。在Mac上它带有一些更高级的过滤器,但是我认为如果iPhone过滤器可以做到这一点,你可能会看到更多的东西.-)

OpenGL确实有一个相当的学习曲线,但这里是什么你需要做的是达到这个效果:在OpenGL中创建一个平面矩形,并且沿着它的长度有几个顶点。将相机对准矩形,使其看起来平坦。然后,使用某种类型的sine()函数来适当地来回切换动画。

这种方法也被用来实现波纹效果,你可能会找到一个或两个例子。

抱歉带来坏消息:-)希望有所帮助!

相关问题