gpt4 book ai didi

iphone - 在哪里可以找到所有变换矩阵字段的解释?

转载 作者:行者123 更新时间:2023-12-03 18:19:11 27 4
gpt4 key购买 nike

我在苹果的一些文档中看到,CALayer 变换属性背后的矩阵具有 m14、m21、m22 等字段。我还记得大约一两个月前我看到过一张解释这些字段的表格。我费了很大劲才找到它。有人知道来源吗?

最佳答案

该结构如下所示:

struct CATransform3D
{
CGFloat m11, m12, m13, m14;
CGFloat m21, m22, m23, m24;
CGFloat m31, m32, m33, m34;
CGFloat m41, m42, m43, m44;
};
typedef struct CATransform3D CATransform3D;

这只是一个用于变换 4 个向量的 4x4 变换矩阵。它可用于表示任意数量的线性变换。请参阅this关于此类矩阵的维基百科文章。这些元素中的大多数都不能真正独立解释,但有些可以。例如,m41、m42 和 m43 表示 3 空间中的平移。例如,如果将一个点乘以这个矩阵:

[ 1  0  0  0 ]
[ 0 1 0 0 ]
[ 0 0 1 0 ]
[ 1 2 3 1 ]

然后,它将将该点向 +X 平移 1 个单位,向 +Y 平移 2 个单位,向 +Z 平移 3 个单位。

                   [ 1  0  0  0 ]
[ x y z 1 ] x [ 0 1 0 0 ] = [ x+1 y+2 z+3 1 ]
[ 0 0 1 0 ]
[ 1 2 3 1 ]

请注意,该点必须表示为 4 个向量,其中第 4 个元素为 1。另请注意,该向量本身实际上是一个矩阵,并且该矩阵的格式与维基百科关于变换矩阵的文章中描述的格式不同。这是因为一个点通常由单列 4 行矩阵表示,然而,Apple 将它们表示为 4 列单行矩阵。这意味着您在维基百科文章中看到的任何变换矩阵都需要先转置,然后才能在 iPhone 上使用,才能正常工作。

另一个例子是缩放变换:

[ 2  0  0  0 ]
[ 0 2 0 0 ]
[ 0 0 2 0 ]
[ 0 0 0 1 ]

它将把你的点的所有坐标加倍,所以 (1, 2, 3) 将变成 (2, 4, 6)。其他变换,例如旋转和透视投影,在视觉上更难以识别。

以下是有关 transforms 的更多信息来自苹果。 Apple 提供了一系列实用转换来生成这些矩阵,请参阅 this link 。他们实际上并没有讨论 CATransform3DMakeRotation 背后的数学,但是 this link确实如此。

关于iphone - 在哪里可以找到所有变换矩阵字段的解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1260741/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com