gpt4 book ai didi

rotation - 场景套件。如何绕其 Axis 旋转SCNNode

转载 作者:行者123 更新时间:2023-12-03 06:27:29 26 4
gpt4 key购买 nike

我试图实现与场景编辑器中相同的旋转,但使用代码使对象始终围绕选定的 Axis 旋转,但是如果我在编辑器中查看角度(x,y,z),它们会相当随机地变化

![局部节点 Axis ][1]

我尝试过使用四元数,但无法使其工作

PS。我的缺点是使用旋转属性而不是 SCNVector4 的方向,已正确阅读文档)

最佳答案

看起来你真的很接近,你必须交换 GLKQuaternionMultiply 中的参数称呼。我在https://stackoverflow.com/a/39813058/4124265中使用了解决方案仅通过 Z 实现旋转 Axis :

    let orientation = modelNode.orientation
var glQuaternion = GLKQuaternionMake(orientation.x, orientation.y, orientation.z, orientation.w)

// Rotate around Z axis
let multiplier = GLKQuaternionMakeWithAngleAndAxis(0.5, 0, 0, 1)
glQuaternion = GLKQuaternionMultiply(glQuaternion, multiplier)

modelNode.orientation = SCNQuaternion(x: glQuaternion.x, y: glQuaternion.y, z: glQuaternion.z, w: glQuaternion.w)

围绕 Y 旋转:

    // Rotate around Y axis
let multiplier = GLKQuaternionMakeWithAngleAndAxis(0.5, 0, 1, 0)
glQuaternion = GLKQuaternionMultiply(glQuaternion, multiplier)

关于rotation - 场景套件。如何绕其 Axis 旋转SCNNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41242290/

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