gpt4 book ai didi

swift - RealityKit – transform.rotate() 使对象规模更大

转载 作者:行者123 更新时间:2023-12-02 18:41:53 27 4
gpt4 key购买 nike

我正在尝试旋转 RealityKit 入门代码中给出的钢盒,我使用了这段代码

steelBox.transform.rotation += simd_quatf(angle: radians,
axis: SIMD3<Float>(0, 1, 0))

尝试旋转对象。

然而,当物体旋转时,它也会在一个维度上变大。

这是为什么?

最佳答案

使用复合乘法运算符 *= 而不是复合加法 +=

steelBox.transform.rotation *= simd_quatf(angle: .pi / 4,        // 45 degrees
axis: SIMD3<Float>(0, 1, 0))

让我们看看在使用复合加法和乘法时,旋转在 4x4 矩阵中的样子。

您应该打印矩阵的值:

print((boxScene.steelBox?.transform.matrix)!)

单位矩阵。

┌              ┐
| 1 0 0 0 |
| 0 1 0 0 |
| 0 0 1 0 |
| 0 0 0 1 |
└ ┘

复合加法后的矩阵存储结果(绕 Y 轴逆时针旋转 45 度):

┌                      ┐
| 1.4 0 2.9 0 |
| 0 2 0 0 |
| -2.9 0 1.4 0 |
| 0 0 0 1 |
└ ┘

复合乘法后的矩阵存储结果(绕 Y 轴逆时针旋转 45 度):

┌                      ┐
| 1.4 0 1.4 0 |
| 0 2 0 0 |
| -1.4 0 1.4 0 |
| 0 0 0 1 |
└ ┘

关于swift - RealityKit – transform.rotate() 使对象规模更大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67896352/

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