【发布时间】:2015-04-03 15:23:37
【问题描述】:
我通过CGAffineTransform 创建了一个动画。我使用了animateWithDuration: 并在其中设置了变换。但是我忘记了所有的观点也应该从一个定义的角度翻译过来。我想实现类似的透视变换:
http://cdn.iphonehacks.com/wp-content/uploads/2014/08/ios-8-safari-tab-view.jpg
我认为:
是3D空间;
所有的矩形都同样有一条边,属于一个不可见的表面;
所有的矩形都有相等的角度(所以所有的矩形都是平行的);
人类的视线集中在中心,因此对于人类来说,所有矩形都具有不同的角度(但这只是由于透视效果而发生的)。
据我了解,CGAffineTransform 和 CATransform3D 可以相互转换,所以对我来说它们之间没有区别。
问题:
1)我知道如何表示旋转、缩放、平移等。但是如何实现围绕锚点的透视?我应该执行哪些操作以及按什么顺序执行?
2)即使我能找到正确的动作序列,那么如何将它们应用于现有的动画 CGAffineTransform?据我了解,一半的变换应该是静态的,而另一半应该是动画的。如何合并它们?
【问题讨论】:
-
你有没有想过这个问题?我遇到了非常相似的事情。
标签: ios animation matrix cgaffinetransform catransform3d