- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试获得与图片中描述的效果类似的效果。左侧的白色区域不在原始照片上,它会将像素推开。我试过使用 Core Image(它为此提供了一些接近的效果)但它对我的需要来说太慢了。我需要的效果是活泼的,这样我就可以让它响应触摸。
在 iOS sdk 中是否有一个关闭效果\动画可以用 UIVIew 做类似的事情? (我找不到任何接近的东西)如果没有,有人可以提供如何使用 OpenGL 进行攻击吗? (代码示例非常受欢迎)
(此效果将在我正在编写的开源类中发挥重要作用,因此如果有更简单的解决方案可用,我宁愿不使用 GPUImage 等第 3 方类(我的目标是此类无依赖))
最佳答案
沙,
我所做的是在我的 OpenGL 坐标中布置一个由点组成的矩形网格。 (我使用了 50x50 网格)。然后我在同一坐标空间中定义一个或多个控制点。我有一个我写的通用收缩拉伸(stretch)算法。它需要一个控制点、一个半径和一个带符号的整数来表示吸引/排斥网格点的数量,并将其应用于我的网格坐标。对于捏合,它将网格点拉近控制点,而对于拉伸(stretch),它将控制点推开。变化在控制点处最大,随着距控制点的距离增加到半径值而减小。
一旦我改变了我的网格的坐标,我就定义了一组三角形 strip 来绘制我的图像的整个(扭曲的)矩形区域。我可以通过一个 OpenGL 绘图调用将我的整个纹理渲染到扭曲的网格上。 OpenGL 负责拉伸(stretch)图像像素以适应我的控制点网格中扭曲的三角形。这是使用多个控制点创建胖脸外观的前/后图像示例。它显示了网格,因此您可以看到它在做什么。这是我丑陋的杯子,所以提前道歉:
拉伸(stretch)图像:
在我的例子中,我希望沿着图像周边的控制点保持原位,并且只有图像的内部被扭曲,所以我添加了额外的代码逻辑来将周边控制点锁定到位。这就是为什么图像的框架不像您的图像那样被插入。然而,这需要额外的代码。
代码最终使用距离公式计算出每个网格点与控制点的距离,然后触发计算角度,乘法改变距离,然后更多触发计算新位置对于每个网格点。不过,由于我只变换 50x50 的控制点网格,所以它的速度足以跟上。
我们的应用程序 Face Dancer 在应用程序商店中是免费的。 (通过此链接下载:Face Dancer in the App store 您可能想下载并试用。(它包括许多免费变形,然后提供额外的变形作为应用内购买)还有一个付费的“Plus”版本包含所有变形。
当您运行 Face Dancer 时,如果您用双指双击图像,它会显示用于创建变形的控制点网格,以便您可以看到它在做什么。
有一个名为 GLCameraRipple 的 OpenGL 示例应用程序,它包含在 Xcode 中并从文档链接。我建议以此为起点。它从摄像头获取视频并将其绘制到屏幕上。如果您触摸屏幕,它会扭曲图像,就好像屏幕是一滩水,您的手指在其中引起涟漪。它使用了我所描述的网格变形技术。
不幸的是,我认为该应用程序没有使用 GLKit,这是使用 OpenGL ES 2.0 的一种更简单的方法。 GLKit 提供了许多使其更易于使用的功能,包括 GLKViews 和 GLKViewControllers。
关于ios - UIView 的变形\弯曲效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20863904/
我正在使用我的简单 PHP 验证码算法 ( http://www.source.ofitall.com/devel/captcha.php ),我一直在努力尝试调整它以使其更具吸引力和更易于阅读,谷歌
我正在 android 中实现一个 ListView ,它看起来就像这样并滚动 我一直在通过在我的适配器的 getView 中设置膨胀行的布局参数来做到这一点,但由此引发的问题是 ListView 变
我正在尝试使用 flex 和 bison 创建一个计算器,它可以进行一组操作(结果分配给变量)。计算器使用存储器来存储这些变量。当我通过终端(标准输入键盘)进行此计算时,一切正常。但是,当我尝试使用文
我的Flex应用程序中有数据网格,我使用Arraycollection绑定(bind)数据网格(使用remoteobject方法调用从java类获取数据)。现在我正在数据网格中执行添加/编辑/删除,我
是否可以制作弯曲或拱形形状的矩形。这是我的 jsfiddle https://jsfiddle.net/dibyendu/y8pthz2x/ 。我想使用 d3 使雷达图轴上的这些矩形成为弧形/曲线 最
我有一张代表某个区域海拔的图像。但是制造它的无人机不一定走直线(尽管图像总是矩形的)。我还有每 20 厘米生成的 gps 坐标。 如何“弯曲”这个矩形图像(曲线/马赛克),使其代表无人机实际经过的弯曲
我经历了How to curve the top of a UIView Controller in Swift 并发表看法。它附在下面。我想从我的 View 中删除该背景色。我在 Storyboar
任何人都可以帮助弯曲 View 以达到以下效果。我正在使用自定义 View 组,我想操纵 Canvas 来实现以下效果,谁能帮帮我。 谢谢 最佳答案 你需要知道: Camera Matrix 这是一个
我尝试绘制一些 3D 正方形(在 iPhone 上使用 OpenGL)并让它们旋转,现在它们看起来像一个球体。 http://i618.photobucket.com/albums/tt265/Loy
我想创建一个 div,它是一个按钮,它包含一个国旗的图片和一个国家的 abv,我已经将一些代码放入我想要的内容中,但这不是 Bootstrap 的方式,我'我正在努力解决这个问题,以及如何使用 boo
现在我正在用一系列 View 填充 UIScrollView。需要扭曲 View 以使 UIScrollView 看起来像旋转木马。换句话说,当用户滚动时,它需要像一个圆圈。我以前从未做过类似的事情,
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!