我能得到 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,参数我能得到。

TCP三次握手

java删除数组中元素 举个例子: int a[]=1,2,3,4,5 我能得到下标 删除 a[3]也就是4如何实现。求赐教

TCP协议为什么要三次握,要四次分手

libgdx- pixmap:我能以某种方式改变线条的宽度吗?