使用 Scenekit,如何获得身份四元数?
Using Scenekit, how can I get an identity quaternion?
啊,那你继续吧
我想创建一个 SCNTransformConstraint
orientation constraint so that a SCNNode
始终面向世界的 x、y 和 z 轴,无论节点的父节点如何定向/移动。
我可以像这样在世界 space 中创建方向约束:
let orientationConstraint =
SCNTransformConstraint.orientationConstraint(inWorldSpace: true) {
(node, orientation) -> SCNQuaternion in
return <<<need quaternion identity here>>>
}
node.constraints = [orientationConstraint]
但我需要通过约束回调来提供multiplicative identity quaternion. When using quaternions to describe orientation and rotation,就像场景工具包一样,四元数标识表示没有旋转。或与世界对齐的世界坐标中的方向。
这类似于按 1 缩放得到相同比例的方式。将比例设置为 1 会将某些内容重置为没有比例。
对于场景套件矩阵,有 SCNMatrix4Identity
。或者,场景工具包向量的附加标识:SCNVector3Zero
.
如何获得乘法的四元数恒等式?
似乎没有 SCNQuaternionIdentity
。
恒等四元数可以用SCNQuaternion(0, 0, 0, 1)
构造。
注意不要使用默认构造函数SCNQuaternion()
。它等同于 SCNQuaternion(0, 0, 0, 0)
,不代表有效方向。
啊,那你继续吧
我想创建一个 SCNTransformConstraint
orientation constraint so that a SCNNode
始终面向世界的 x、y 和 z 轴,无论节点的父节点如何定向/移动。
我可以像这样在世界 space 中创建方向约束:
let orientationConstraint =
SCNTransformConstraint.orientationConstraint(inWorldSpace: true) {
(node, orientation) -> SCNQuaternion in
return <<<need quaternion identity here>>>
}
node.constraints = [orientationConstraint]
但我需要通过约束回调来提供multiplicative identity quaternion. When using quaternions to describe orientation and rotation,就像场景工具包一样,四元数标识表示没有旋转。或与世界对齐的世界坐标中的方向。
这类似于按 1 缩放得到相同比例的方式。将比例设置为 1 会将某些内容重置为没有比例。
对于场景套件矩阵,有 SCNMatrix4Identity
。或者,场景工具包向量的附加标识:SCNVector3Zero
.
如何获得乘法的四元数恒等式?
似乎没有 SCNQuaternionIdentity
。
恒等四元数可以用SCNQuaternion(0, 0, 0, 1)
构造。
注意不要使用默认构造函数SCNQuaternion()
。它等同于 SCNQuaternion(0, 0, 0, 0)
,不代表有效方向。