gpt4 book ai didi

core-animation - CATransform3D 行/列顺序

转载 作者:行者123 更新时间:2023-12-04 17:58:00 25 4
gpt4 key购买 nike

我对 CATransform3D 结构的矩阵行/列顺序有些困惑。该结构定义了一个矩阵,如下所示:

[m11 m12 m13 m14]
[m21 m22 m23 m24]
[m31 m32 m33 m34]
[m41 m42 m43 m44]

起初,这些值似乎定义了行(因此 [m11 m12 m13 m14] 形成第一行),但是当您通过 (tx, ty, tz) 创建平移矩阵时,该矩阵将如下所示:
[ 1  0  0  0]
[ 0 1 0 0]
[ 0 0 1 0]
[tx ty tz 1]

我的困惑来自这样一个事实,即这不是一个有效的翻译矩阵;将它与 4 个元素的列向量相乘不会平移该点。

我的猜测是 CATransform3D 结构按列顺序存储值,以便值 [m11 m12 m13 m14] 形成第一列(而不是第一行)。

有人可以确认吗?

最佳答案

是的,CATransform3D是列主要顺序,因为这是 OpenGL(ES) 想要它的方式。 Core Animation 在后台使用 GL 进行渲染。如果您需要证据,请查看 man专页 glMultMatrix :

PARAMETERS

m Points to 16 consecutive values that are used as the elements of a 4 x 4 column-major matrix.16 consecutive values that are used as the elements of a 4 x 4 column-major matrix.


这在 CALayer 的文档中应该更清楚。 .

关于core-animation - CATransform3D 行/列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4917972/

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