我能得到 CATransform3DIdentity 的基本解释吗?
Posted
技术标签:
【中文标题】我能得到 CATransform3DIdentity 的基本解释吗?【英文标题】:Could I get a basic explanation of CATransform3DIdentity? 【发布时间】:2011-08-20 00:54:27 【问题描述】:我逐渐对 Core Animation 变得更加认真,并且非常感谢由简短的单词组成的解释(输入?)慢慢解释 CATransform3DIdentity 以及为什么下面的代码会这样做(在“3D”空间中翻转图层)
kFaceUpTransform = kFaceDownTransform = CATransform3DIdentity;
// Construct a 180-degree rotation matrix:
kFaceDownTransform.m11 = kFaceDownTransform.m33 = -1;
三思而后行,快速打字并使用多音节单词,但请保持温和。
附言。我的印象是,如果我想在动画方面走得更远,我应该对线性代数更加熟悉......这是正确的吗?
【问题讨论】:
是的,还有更多 - 我在答案底部放置了一个链接,可能会有所帮助。 【参考方案1】: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 Core Animation Programming Guide - Core Animation Basics
最后,我记得不久前读过这篇文章,它可能会有所帮助,因为我认为我上面的解释不是那么方便 - 我告诉你什么,而不是为什么 - 相信我,你需要知道为什么正确地进入这种编程:
http://chortle.ccsu.edu/vectorlessons/vectorIndex.html
祝你好运!
【讨论】:
您说过“单位矩阵是一种在应用于对象时,会将其重置为其初始地理位置的矩阵。”那是错的。单位矩阵根本不会改变对象。这与将其重置为原始状态不同。在乘法中,1 是标识值。任何值乘以 1 都是原始值。同样的事情也适用于矩阵数学。以上是关于我能得到 CATransform3DIdentity 的基本解释吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何在基于 Web 的实时应用程序中使用多线程,我能得到一些场景吗
我怎么才能从ServletRequest request 中的到URL,参数我能得到。
java删除数组中元素 举个例子: int a[]=1,2,3,4,5 我能得到下标 删除 a[3]也就是4如何实现。求赐教