我使用的是帶有SceneKit的ARKit。當用戶按下一個按鈕時,我創建一個錨點並與其對應的SCNNode添加一個3D對象(從項目中的.scn文件加載)。SceneKit - 圍繞X軸和Z軸旋轉對象
將3D物體朝向相機放置,與相機具有相同的方向。我想讓它看起來像物體躺在平面上,如果是這樣的話,不要傾斜。所以,如果我知道了,我需要應用一個旋轉變換,以便圍繞X和Z軸的旋轉變爲0.
我的嘗試是:取節點的x和z eulerAngles,將它們顛倒和旋轉是圍繞量各軸
let rotationZ = rotationMatrixAroundZ(radians: -node.eulerAngles.z)
let rotationX = rotationMatrixAroundX(radians: -node.eulerAngles.x)
let rotationTransform = simd_mul(rotationTransformX, rotationTransformZ)
node.transform = SCNMatrix4(simd_mul(simd_float4x4(node.transform), rotationTransform))
這適用所有適合大多數情況下,但在某些物體在完全陌生的方式旋轉。我應該將 旋轉角度設置爲除當前歐拉角的倒數之外的任何其他值嗎?直接將角度設置爲0根本不起作用。
你使用約束? –
不,我試着用SCNLookAtConstraint和look(at :)方法試驗,但沒有一個滿足我的需求 – leandrodemarco