我有一个 UIView(以及一个 CALayer),我试图在 3D 空间中稍微扭曲或弯曲。也就是说,假设我的 UIView 是一个平面标签,我想将其部分包裹在啤酒瓶上(不是 360 度,只是在一侧)。
我认为通过对 View 的图层应用变换可以实现这一点,但据我所知,这种变换仅限于图层的统一旋转、缩放和平移。至少可以说,我在这里可能是错的,因为我的线性代数目前还很模糊。
我怎样才能实现这个目标?
最佳答案
使用核心动画可以做的最好的事情就是进行分段线性近似。
例如,您可以将“圆柱体”分为八段,并按如下方式排列它们:
_
/ \
| |
您可以为它们提供相同的图像,但更改翻译,以便它们在边缘对齐。然后对每个进行变换(如果您想要透视外观,可以是简单的水平压缩,也可以是某种“梯形失真校正”)。
实际上,您可能想要使用八个以上的段。请注意,它们将集中在您 View 的边缘附近。
This CSS animation也许会给你一些启发。
关于iphone - 在 3D 中包裹/扭曲 CALayer/UIView(或 OpenGL)(iPhone),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2402923/