7

我对核心动画慢慢变得更加认真,并且非常感谢由简短的单词组成的解释(输入?)慢慢解释 CATransform3DIdentity 以及为什么下面的代码会做它的工作(在“3D”空间中翻转图层)

    kFaceUpTransform = kFaceDownTransform = CATransform3DIdentity;
    // Construct a 180-degree rotation matrix:
    kFaceDownTransform.m11 = kFaceDownTransform.m33 = -1;

再三考虑,快速打字并使用多音节词,但请保持温和。

PS。我的印象是,如果我想在动画方面走得更远,我应该对线性代数更加熟悉……这是正确的吗?

4

1 回答 1

14

CATransform3DIdentity 是一个身份矩阵:

http://en.wikipedia.org/wiki/Identity_matrix

基本上,动画数学中的矩阵用于变换对象(倾斜、移动、旋转等)。

单位矩阵是一种在应用于对象时,会将其重置为其初始地理的矩阵。

前任。
[1 0 0]
[0 1 0]
[0 0 1]

这并不容易解释(公平地说,我自己真的不太理解)但是这些 3x3 矩阵使用网格位置 (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

最后,此列表底部的表格显示了如何使用矩阵的不同字段:

Apple 核心动画编程指南 - 核心动画基础

最后,我记得不久前读过这篇文章,它可能会有所帮助,因为我认为我上面的解释不是那么方便——我告诉你的是什么,而不是为什么——相信我,你需要知道为什么要进入这种编程正确:

http://chortle.ccsu.edu/vectorlessons/vectorIndex.html

祝你好运!

于 2011-08-20T01:07:45.503 回答