如何在SceneKit iOS中更改3D对象的高度宽度

时间:2017-01-03 12:01:13

标签: ios 3d scenekit

我在移动应用中显示3D(.obj和.stl)对象。 对于显示3D对象,我正在使用version: '2' services: rabbitmq: #service A #... handler: #service B image: thethingsnetwork/ttn:latest command: handler --config /etc/ttn/handler/conf.yml depends_on: - discovery - redis - rabbitmq networks: default: aliases: - handler.local ports: - "1904:1904" - "8084:8084" volumes: - "$HOME/host/handler:/etc/ttn/handler" node-red: #service C build: $HOME/host/nodeRed volumes: - /var/lib/docker/node-red/:/root/.node-red/ depends_on: - handler - rabbitmq - broker ports: - "1880:1880" - "5044:5044" #mapping logs

SceneKit Framework.

现在我的要求是根据用户手势改变3D对象的宽度和高度。

我试图在我的SceneView对象中执行此操作,但无法更改宽度和高度。

任何人都可以帮我这个。

我欢迎你的建议和指导。

先谢谢。

2 个答案:

答案 0 :(得分:3)

在3D场景中有两种方法可以做到这一点:

<强> 1。使用相机,更改变焦/镜头长度和/或移动

缩放通常以镜头长度或视野来描述。放大的虚拟长度越大,缩小越小。相反,较大的视野会缩小,较小的视野会放大。

Dollying是根据与主体的距离来调整相机位置的过程;正在看的那个。距离越远,物体越小,越大。

<强> 2。缩放对象

这很简单。但是对于一个手势来说似乎很奇怪,因为只有一个物体会出现变化。如果您正在制作3D编辑应用,这可能就是您想要的。否则你可能想要移动和/或缩放相机。

答案 1 :(得分:2)

首先,如果这种情况过于简单,请道歉。我写的是关于如何缩放,移动或定位3D文件,而不知道您对Xcode的熟悉程度;查看和操作scnassets文件夹中的项目。最后一点需要注意的是,我不使用obj文件,但假设(希望,真的)可以在Xcode中编辑它们,就像dae文件一样。

打开Project Navigator(⌘1)并查找(希望)存在且包含obj文件的scnassets文件夹。从scnassets文件夹中,选择您的obj文件,您的对象应出现在编辑器中。打开“场景图”视图,然后选择需要调整宽度和高度的节点。在Utilities视图的Node Inspector(⌥⌘3)中,您将看到可以更改的节点的多个功能,其中一个功能是Scale。在“缩放”下,您将看到要更改的节点的边界框尺寸。

如果您需要一次重新缩放多个节点,我建议使用Scene Graph视图下的+符号创建子节点,然后移动需要重新缩放(或移动或重定向)的节点进入子节点,然后将该子节点重新调整为您需要的大小。

另外,作为预防措施,请在每次更改后保存到您的obj文件。 Xcode 8.2.1更加稳定,但是每次更改后8.2会崩溃,或者dae / scn文件会发生两次变化。希望所有这些都有所帮助。