【发布时间】:2018-12-29 11:59:46
【问题描述】:
我基于SCNVector3 创建了SCNBox。但我不明白创造的概念。
对于二维矩形,x 和 y 表示矩形的右上角。
对于 ARKit 3D SCNBox,x, y 和 z 代表什么?那代表SCNBox的中心吗?
【问题讨论】:
标签: ios swift augmented-reality arkit
我基于SCNVector3 创建了SCNBox。但我不明白创造的概念。
对于二维矩形,x 和 y 表示矩形的右上角。
对于 ARKit 3D SCNBox,x, y 和 z 代表什么?那代表SCNBox的中心吗?
【问题讨论】:
标签: ios swift augmented-reality arkit
当您设置SCNNode 的位置时,您正在初始化描述节点位置的SCNVector3。
您必须定义节点的中心点相对于父节点的位置(中心点不一定在您的自定义节点的中心,但如果您的基本节点具有几何形状,例如 SCNBox 或 SCNSphere,中心点在中心)
一个简单的例子可以是添加具有几何形状的节点SCNBox 到sceneView 的scene 的rootNode,您在Xcode 中创建新的增强现实应用程序。 p>
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、y和z位置。请注意,单位是米。
我用 x,y 和 z 轴创建了(非常漂亮的)图片,这应该可以帮助您了解如何定位您的SCNNode:
...origin 是添加节点时节点父级坐标系的原点。 AR世界的图像原点简化为ARSCNView的中心位置
【讨论】: