本文主要是介绍图像漩涡特效,扭曲特效,Swirl算法思想,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
所谓的扭曲特效就是这样的:
在网上直接搜漩涡算法什么的,也没有搜到,可能是我不知道怎么搜索关键词吧,最后终于找到一个生效的代码,研究了一下之后,把简单算法原理总结在这。
其实这个算法挺仿生的,核心在于了解漩涡的特点是什么?
是流速,距离漩涡中心和边缘的旋转速度是不同的。之前考虑了各种什么二维坐标转一维坐标,再把一维坐标映射在螺旋线上。想复杂了,也不知道怎么实现,也不知道是否有用。
其实算法核心就是以漩涡为中心,对图片进行旋转,只不过旋转量不同。
你观察图片也发现,越靠近中心,扭曲(旋转)越大。
所以我们可以这么去做。以扭曲中心为圆心,向外取每个像素环。每个像素环上的像素到扭曲点的距离是相等的,为dr,然后只需要把这个圆上的像素点,都绕扭曲中心,旋转一定的角度就可以了。
具体旋转多少角度,可以自己调,反正只要保证,dr越小,旋转角度越大即可。
至于旋转像素点,跟实际实现的方式相关,可以是纹理采样的映射,也可能是实际旋转。但总体原理就是这样的。这样实现出来的效果就是扭曲了。
这篇关于图像漩涡特效,扭曲特效,Swirl算法思想的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!