我基于SCNBox
创建SCNVector3
。但我不了解创作的概念。
对于2D矩形, x 和 y 代表矩形的右上角。
对于ARKit 3D SCNBox
, x,y 和 z 分别代表什么?那代表SCNBox
的中心吗?
答案 0 :(得分:2)
设置SCNNode
的位置时,您正在初始化SCNVector3
来描述节点的位置。
您必须定义节点的中心点相对于父节点的位置(中心点不一定位于自定义节点的中心,但是如果您拥有具有SCNBox
或SCNSphere
等几何形状的基本节点,中心点位于中心)
一个简单的示例是将具有几何SCNBox
的节点添加到rootNode
的{{1}}的{{1}}中,当您在Xcode中创建新的 Augmented Reality时应用。
sceneView
如您所见,要初始化scene
,您必须定义节点中心点的 x,y 和 z 位置。请注意,单位是米。
我用 x,y 和 z 轴创建了(非常好)图片,这应该可以帮助您了解如何放置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)
:
... origin是添加节点时节点父级坐标系的原点。 AR世界的图像原点简化为SCNVector3