2016-08-15 5 views
1

У меня есть файл GPX с данными о местоположении и высоте. Я хотел бы создать 3D-модель и показать эту модель с помощью SceneKit.Создайте 3D-маршрут с помощью SceneKit

Я уже пробовал метод с использованием NSBezierPath, но проблема в том, что я не могу добавить данные Z, и это больше похоже на 2D-маршрут.

Прямо сейчас я создаю SCNBox для каждой точки трека - ну, это работает, но на самом деле это не очень красиво, и это кажется неправильным.

Я также думал о создании 3D-модели (obj-файла) программно, но это слишком сложно.

Итак, длинный рассказ: Каков наилучший способ создания объекта 3D-геометрии с помощью SceneKit, когда я получил список точек с данными X/Y/Z?

Есть ли способ «подключить» SCNBoxes?

С уважением, Sascha

+0

Добро пожаловать в StackOverflow! Вопрос, как есть, больше похож на «это вопрос о лучших методах, которые должны охватываться учебниками», а не вопрос о том, что код не работает. Хотя это не всегда не по теме, это помогает, если вы объясните [какие поиски и исследования вы уже сделали] (/ help/how-to-ask), которые заставляют вас чувствовать, что это подходящее место, чтобы задать этот вопрос. –

ответ

-2

Попробуйте SCNShape класс. Он позволяет создавать трехмерную форму по пути безье, также управляя осью Z:

«SceneKit создает трехмерную геометрию путем экструдирования траектории Безье, которая простирается в направлениях оси х и у оси его локальное координатное пространство вдоль оси z на определенную величину ».

+0

OP уже отметил, * «Я уже пробовал метод с использованием NSBezierPath, но проблема в том, что я не могу добавить данные Z, и это больше похоже на 2D-маршрут». * Все 'SCNShape' делает экструзию 2D-пути до однородной толщины; он не создает 3D-путь. – rickster

+0

ОК. Отметил. Как насчет [SCNGeometryElement] (https://developer.apple.com/library/ios/documentation/SceneKit/Reference/SCNGeometryElement_Class/index.html) с помощью [SCNGeometryPrimitiveTypeLine] (https://developer.apple.com/reference/scenekit/scngeometryprimitivetype/scngeometryprimitivetypeline)? –