Swift 如何在现实中仅围绕一个轴旋转对象?

Swift 如何在现实中仅围绕一个轴旋转对象?,swift,rotation,augmented-reality,arkit,realitykit,Swift,Rotation,Augmented Reality,Arkit,Realitykit,我试着绕着它的z轴旋转一个立方体,但我找不到如何旋转 现实中有什么方法可以做到这一点吗?对于也在搜索此功能的用户,您需要使用变换和旋转。 这需要一个simd_quatf,其中给出角度和轴 在我的情况下,我必须使用这个: "object".transform.rotation = simd_quatf(angle: GLKMathDegreesToRadians(90), axis: SIMD3(x: 0, y: 0, z: 1)) 在现实中,围绕单轴旋转对象至少有三种方法 在每个示例中,我们逆

我试着绕着它的z轴旋转一个立方体,但我找不到如何旋转


现实中有什么方法可以做到这一点吗?

对于也在搜索此功能的用户,您需要使用变换旋转。 这需要一个simd_quatf,其中给出角度

在我的情况下,我必须使用这个:

"object".transform.rotation = simd_quatf(angle: GLKMathDegreesToRadians(90), axis: SIMD3(x: 0, y: 0, z: 1))

在现实中,围绕单轴旋转对象至少有三种方法

在每个示例中,我们逆时针(CCW)旋转一个对象


第一种方法:

第二种方法: 俯仰偏航滚转是以弧度表示的绕X、Y和Z轴旋转


第三种方法: 旋转矩阵的视觉表示如下所示:

let a: Float = cos(.pi/4)
let b: Float = sin(.pi/4)

//  0  1  2  3
 ┌              ┐
 |  a -b  0  0  |
 |  b  a  0  0  |
 |  0  0  1  0  |
 |  0  0  0  1  |
 └              ┘

如果你想了解更多关于旋转矩阵的信息,请阅读帖子。

我对RealityKit不太熟悉,但在文档中我看到了一个组件,该组件具有四元数形式的旋转属性,你大概可以操纵它。不过,我还没有使用RealityKit,所以我只是根据文档大胆猜测一下。谢谢!正因为如此,我找到了答案谢谢你的回答!另外:您知道如何将此旋转设置为动画吗?您可以为此使用
播放动画(\uuU2TransitionDuration:startsPaused:)
实例方法。另外,请阅读这篇有用的帖子:非常感谢您抽出时间。帮了我很多忙!嗨,安迪,我读了这篇文章,并遵循了教程,但这篇文章与现实作曲家及其行为有关。我实际上是想弄清楚如何在代码中制作旋转动画。你知道怎么做吗?请提出一个关于动画的新问题。
boxScene.steelBox?.transform = Transform(pitch: 0, 
                                           yaw: 0, 
                                          roll: .pi/4)      /* Around Z axis */
let a: Float = cos(.pi/4)
let b: Float = sin(.pi/4)

let matrix = float4x4([ a, b, 0, 0 ],        /* column 0 */
                      [-b, a, 0, 0 ],        /* column 1 */
                      [ 0, 0, 1, 0 ],        /* column 2 */
                      [ 0, 0, 0, 1 ])        /* column 3 */

boxAnchor.steelBox?.setTransformMatrix(matrix, relativeTo: nil)
let a: Float = cos(.pi/4)
let b: Float = sin(.pi/4)

//  0  1  2  3
 ┌              ┐
 |  a -b  0  0  |
 |  b  a  0  0  |
 |  0  0  1  0  |
 |  0  0  0  1  |
 └              ┘