如何在 ARKit 中处理 3D 对象大小及其位置

Cal*_*leb 0 xcode scenekit swift arkit

我在 3D 对象大小及其 x、y、z 定位方面面临困难。我将 3D 对象添加到 中sceneView,但其尺寸太大。如何根据我的要求减小 3D 对象的大小?谁能帮我处理 3D 对象的大小及其 x、y、z 位置?

我正在使用 Swift 进行编码。

Bla*_*orz 5

每个SCNNode都有一个尺度属性:

\n\n
\n

尺度向量的每个分量乘以节点\xe2\x80\x99s 几何图形的相应\n 维度。所有三个维度的默认比例均为 1.0。例如,将比例 (2.0, 0.5, 2.0) 应用于包含立方体几何形状的节点会降低其高度并增加其宽度和深度。

\n
\n\n

可以设置如下:

\n\n
var scale: SCNVector3 { get set }\n
Run Code Online (Sandbox Code Playgroud)\n\n

例如,如果您的节点名为myNode,您可以使用以下命令将其缩放为原始大小的 1/10:

\n\n
myNode.scale = SCNVector3(0.1, 0.1, 0.1)\n
Run Code Online (Sandbox Code Playgroud)\n\n

关于定位 SCNNodes,这可以通过设置属性来实现position

\n\n
\n

节点\xe2\x80\x99s 位置将其定位在其父节点的坐标系内,由节点\xe2\x80\x99s 枢轴属性修改。默认位置\n是零向量,表示节点放置在父节点\xe2\x80\x99s坐标系的原点\n。

\n
\n\n

在此输入图像描述

\n\n

因此,如果您想将 SCNNode 添加到worldOrigin,并且距离相机 1m,您可以使用以下命令:

\n\n
myNode.position = SCNVector3(0, 0, -1)\n
Run Code Online (Sandbox Code Playgroud)\n\n

希望能帮助到你...

\n