ARAnchor
的4x4矩阵有4列。矩阵的第四列包含x
、y
和z
坐标的3个平移值。
我想知道其他三列代表什么?
ARAnchor
的4x4矩阵有4列。矩阵的第四列包含x
、y
和z
坐标的3个平移值。
我想知道其他三列代表什么?
RealityKit、ARKit、SceneKit 和 ARCore(以及已弃用的 Sceneform)框架使用 4x4 变换矩阵
(simd_float4x4
矩阵)来平移、旋转、缩放和剪切 3D 对象。在 3D 图形中,我们使用具有 16 个元素的矩阵。默认的单位矩阵(即 Identity)4x4 矩阵
如下:
在这十六个元素之间,有六个不同的剪切系数:
shear XY
shear XZ
shear YX
shear YZ
shear ZX
shear ZY
由于矩阵中没有旋转系数,因此六个剪切系数和三个比例系数使您可以使用神奇的三角函数(sin
和cos
)绕X
、Y
和Z
轴旋转3D对象。
以下是一个关于如何使用剪切和缩放元素绕Z
轴(逆时针方向)旋转3D对象的示例:
查看使用剪切和缩放元素的3种不同旋转模式:
4x4矩阵
中的3个变换元素 (tx
,ty
,tz
) 位于最后一列:
┌ ┐
| 1 0 0 tx |
| 0 1 0 ty |
| 0 0 1 tz |
| 0 0 0 1 |
└ ┘
0
、1
、2
、3
。第四列(索引3)包含了平移值:var translation = matrix_identity_float4x4
translation.columns.3.x
translation.columns.3.y
translation.columns.3.z
我建议您阅读我在Medium上关于4x4变换矩阵的图解故事。
我也建议您阅读如何将矩阵记录到文件中,以便将它们传递给Maya的文章。
看一下如何在ARCore和Sceneform中设置正投影的示例。
4x4矩阵
底部行中的数值用于透视投影。