【问题标题】:Define position for SCNNode定义 SCNNode 的位置
【发布时间】:2018-12-29 11:59:46
【问题描述】:

我基于SCNVector3 创建了SCNBox。但我不明白创造的概念。

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

【问题讨论】:

    标签: ios swift augmented-reality arkit


    【解决方案1】:

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

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

    一个简单的例子可以是添加具有几何形状的节点SCNBoxsceneViewscenerootNode,您在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、yz位置。请注意,单位是米。

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

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

    【讨论】:

    • 感谢您的回复。还有一个问题。如果我从ARFrame中获取相机位置,x、y、z值是否也代表了iPhone的中心点?
    猜你喜欢
    • 2018-09-24
    • 2019-05-02
    • 2018-12-29
    • 2019-05-04
    • 2017-04-15
    • 2017-10-27
    • 2018-05-18
    • 2020-03-27
    • 2023-03-16
    相关资源
    最近更新 更多