SCNNode方向问题
SCNNode direction issue
我把一个SCNNode
放到了一个场景中。我想在 space 中提供适当的旋转,因为这个节点是金字塔。我希望Z axis
指向V2
点,X axis
指向V1
点(这些V2和V1点是动态计算的,当然在这种情况下轴之间的角度将是 90 度,因为我计算正确)。
问题:我不能指向X轴,因为SCNLookAtConstraint(target: nodeWithV2)
只指向Z轴,我看到的是Z轴可以,但是X轴总是随机的,这就是为什么我的金字塔方向总是错误的。如何指向 X 轴?
这是我的代码:
let pyramidGeometry = SCNPyramid(width: 0.1, height: 0.2, length: 0.001)
pyramidGeometry.firstMaterial?.diffuse.contents = UIColor.white
pyramidGeometry.firstMaterial?.lightingModel = .constant
pyramidGeometry.firstMaterial?.isDoubleSided = true
let nodePyramid = SCNNode(geometry: pyramidGeometry)
nodePyramid.position = SCNVector3(2, 1, 2)
parent.addChildNode(nodePyramid)
let nodeZToLookAt = SCNNode()
nodeZToLookAt.position = v2
parent.addChildNode(nodeZToLookAt)
let constraint = SCNLookAtConstraint(target: nodeZToLookAt)
nodePyramid.constraints = [constraint]
但这只设置了 Z 轴的方向,这就是为什么 X 轴总是随机的,所以旋转总是随机的。如何将 X 轴方向设置为我的点 V1?
starting iOS 11 SCNLookAtConstraint
有一个 localFront
属性 允许您更改用于定位受约束节点的轴。
我把一个SCNNode
放到了一个场景中。我想在 space 中提供适当的旋转,因为这个节点是金字塔。我希望Z axis
指向V2
点,X axis
指向V1
点(这些V2和V1点是动态计算的,当然在这种情况下轴之间的角度将是 90 度,因为我计算正确)。
问题:我不能指向X轴,因为SCNLookAtConstraint(target: nodeWithV2)
只指向Z轴,我看到的是Z轴可以,但是X轴总是随机的,这就是为什么我的金字塔方向总是错误的。如何指向 X 轴?
这是我的代码:
let pyramidGeometry = SCNPyramid(width: 0.1, height: 0.2, length: 0.001)
pyramidGeometry.firstMaterial?.diffuse.contents = UIColor.white
pyramidGeometry.firstMaterial?.lightingModel = .constant
pyramidGeometry.firstMaterial?.isDoubleSided = true
let nodePyramid = SCNNode(geometry: pyramidGeometry)
nodePyramid.position = SCNVector3(2, 1, 2)
parent.addChildNode(nodePyramid)
let nodeZToLookAt = SCNNode()
nodeZToLookAt.position = v2
parent.addChildNode(nodeZToLookAt)
let constraint = SCNLookAtConstraint(target: nodeZToLookAt)
nodePyramid.constraints = [constraint]
但这只设置了 Z 轴的方向,这就是为什么 X 轴总是随机的,所以旋转总是随机的。如何将 X 轴方向设置为我的点 V1?
starting iOS 11 SCNLookAtConstraint
有一个 localFront
属性 允许您更改用于定位受约束节点的轴。