我正逐渐对核心动画变得越来越认真,并且非常欣赏由简短的单词组成的解释(打字?)慢慢解释CATransform3DIdentity以及为什么下面的代码会做它的作用(翻转’3D’空间中的图层)
kFaceUpTransform = kFaceDownTransform = CATransform3DIdentity; // Construct a 180-degree rotation matrix: kFaceDownTransform.m11 = kFaceDownTransform.m33 = -1;
第二个想法,快速键入并使用多音节词语,但请保持温柔.
PS.我得到的印象是,如果我要进一步了解动画,我应该对线性代数更加舒服……这是正确的吗?
解决方法
CATransform3DIdentity是一个Identity矩阵:
http://en.wikipedia.org/wiki/Identity_matrix
基本上,动画数学中的矩阵用于变换对象(倾斜,移动,旋转等).
Identity矩阵是一种应用于对象时的矩阵,它将其重置为其初始地理位置.
恩.
[1 0 0]
[0 1 0]
[0 0 1]
这不容易解释(我真的不能公平地理解我自己),但是这些3×3矩阵使用网格位置(m11,m33)来确定如何变换对象,在这种情况下,m11正在使其旋转180度,将其设置为1,然后旋转另一个方向.
将其设置为0.5并旋转90度(iirc!).
恩.
[m11,m12,m13]
[m21,m22,m23]
[m31,m32,m33]
这有点可怕,但这里的图片有点帮助:
http://en.wikipedia.org/wiki/Matrix_(mathematics)#Linear_transformations
和这里
http://en.wikipedia.org/wiki/Transformation_matrix
最后,我记得刚才读到这篇文章,它可能会有所帮助,因为我认为我上面的解释并不那么方便 – 我告诉你什么,不是为什么 – 而且相信我,你需要知道为什么要进入这种编程正确:
http://chortle.ccsu.edu/vectorlessons/vectorIndex.html
祝你好运!