ios - 定义 SCNNode 的位置

标签 ios swift augmented-reality arkit

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

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

最佳答案

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

您必须定义节点的中心点相对于父节点位置的位置(中心点不一定在自定义节点的中心,但如果你有像 SCNBoxSCNSphere 这样的几何结构的基本节点,中心点 在中心)

一个简单的例子可以是将具有几何形状的节点 SCNBox 添加到 sceneViewscenerootNode 中当您在 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)

enter image description here

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

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

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

的中心位置

enter image description here

关于ios - 定义 SCNNode 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53969314/

相关文章:

ios - Swift - 顶部有背景色的tableView

java - 为什么 getAllTrackables 方法只返回一张脸?

c# - 如何在 C# 中定义全息坐标系?

ios - 在 iOS 上将 Facebook SDK session 对象与 UIActivityViewController 结合使用

ios - iOS UIBarButton和应用拒绝

ios - 内容偏移量不起作用

ios - NavigationItem 按钮和 Edit mode 按钮分层次显示

java - 使用 ARCore 检测平面和点击事件

ios - 滚动动画期间 Swift UITableView 滑动

ios - UITableView 很滞后,滚动时会跳动