Определить позицию для SCNNode - PullRequest
0 голосов
/ 29 декабря 2018

Я создаю SCNBox на основе SCNVector3.Но я не понимаю концепцию творения.

Для 2D-прямоугольника x и y представляют верхний правый угол прямоугольника.Для ARKit 3D SCNBox что представляют собой x, y и z ?Является ли это центром SCNBox?

1 Ответ

0 голосов
/ 29 декабря 2018

Когда вы устанавливаете позицию своего SCNNode, вы инициализируете SCNVector3, который описывает положение узла.

Вы должны определить положение центральной точки узла относительно позиции родителя ( центральная точка не обязательно находится в центре вашего пользовательского узла, ноесли у вас есть базовые узлы с геометрией, такие как SCNBox или SCNSphere, центральная точка находится в центре)

Простым примером может быть добавление узла с геометрией SCNBox к rootNode из sceneView scene, которые вы получаете при создании в 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, y и z позиции центральной точки узла .Обратите внимание, что единицы измерения указаны в метрах.

Я создал (очень приятно) изображение с x, y и z , которые должны помочь вам понять, как расположить вашу SCNNode:

... origin - источник системы координат родителя узла при добавлении узла.Происхождение изображения AR world упрощено как положение центра ARSCNView

enter image description here

...