定义 SCNNode 的位置

Define position for SCNNode

我根据 SCNVector3 创建了 SCNBox。但我不明白创造的概念。

对于二维矩形,xy表示矩形的右上角。 对于 ARKit 3D SCNBoxx、yz 代表什么?那是代表SCNBox的中心吗?

当您设置 SCNNode 的位置时,您正在初始化描述节点位置的 SCNVector3

您必须定义节点的 中心点 相对于父节点位置的位置(中心点 不一定在自定义节点的中心,但如果您的基本节点具有 SCNBoxSCNSphere 等几何形状,则 中心点 位于中心)

一个简单的例子可以是添加几何节点 SCNBoxsceneViewscenerootNode,当你在 Xcode 创建新 增强现实应用.

let cube = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)
let material = SCNMaterial()
material.diffuse.contents = UIColor.red
cube.materials = [material]
let node = SCNNode()
node.position = SCNVector3(x: 0, y: 0, z: -0.5)
node.geometry = cube
sceneView.scene.rootNode.addChildNode(node)

如您所见,要初始化 SCNVector3,您必须定义节点的 x、yz 位置 中心点。注意单位是米。

我用 x,yz 轴创建了(非常好的)图片,这应该可以帮助您了解如何定位您的 SCNNode:

...origin是添加节点时节点父坐标系的原点。 AR 世界 的图像原点简化为 ARSCNView

的中心位置