的ARAnchor
4x4 矩阵有 4 列。矩阵的第四列包含 、 和坐标的 3 个x
平移y
值z
。
我想知道其他 3 列代表什么?
的ARAnchor
4x4 矩阵有 4 列。矩阵的第四列包含 、 和坐标的 3 个x
平移y
值z
。
我想知道其他 3 列代表什么?
ARKit、RealityKit 和 SceneKit 框架用于
4 x 4
Transformation Matrices
平移、旋转、缩放和剪切 3D 对象(就像simd_float4x4
矩阵类型一样)。让我们看看这些矩阵的样子。
在 3D 图形中,我们经常使用包含 16 个有用元素的4
x4
矩阵。Identity 4
x4
矩阵如下:
在这 16 个元素之间,有 6 个不同的剪切系数:
shear XY
shear XZ
shear YX
shear YZ
shear ZX
shear ZY
在剪切矩阵中,它们如下所示:
因为在这个矩阵中根本没有,六个和三个Rotation coefficients
Shear coefficients
允许您使用神奇的三角函数(和)围绕、和轴Scale coefficients
旋转 3D 对象。X
Y
Z
sin
cos
下面是一个如何Z
使用剪切和缩放元素围绕其轴旋转 3D 对象 (CCW) 的示例:
使用剪切和缩放元素查看 3 种不同的旋转模式:
当然,x中的 3 个翻译元素 ( tx
, ty
, tz
)位于最后一列:4
4
Matrix
┌ ┐
| 1 0 0 tx |
| 0 1 0 ty |
| 0 0 1 tz |
| 0 0 0 1 |
└ ┘
ARKit、SceneKit 和 RealityKit 中的列索引为:
0
,1
,2
,3
.
第四列(索引 3)用于翻译值:
var translation = matrix_identity_float4x4
translation.columns.3.x
translation.columns.3.y
translation.columns.3.z
你可以在 Medium 上阅读我关于MATRICES的插图故事。
位于 a 底行的4x4 matrix
值用于透视投影。
而且,当然,您需要查看如何设置正交投影的示例。
如果您是 3D 新手,那么这些转换矩阵看起来就像魔术一样。基本上,ARKit 空间中的每个“点”都由一个 4x4 变换矩阵表示。该矩阵描述了距 ARKit 原点(ARKit 唤醒到世界的点)的距离,通常称为平移,以及设备的方向,即俯仰、滚动和偏航。变换矩阵也可以描述比例,尽管通常在渲染某些东西之前您不会处理比例。
列是什么意思?这变得很复杂,但请记住第 4 列的前 3 个元素是 x、y、z 平移。那会派上用场的。其余的保存比例和旋转信息。