Как вы получаете UIKit-координаты точки ARKit?

проверить jar (mysql-connector-java-bin) в вашем пути к классу скачать здесь

1
задан Tob 13 July 2018 в 18:02
поделиться

1 ответ

Преобразование точки из пространства 3D (обычно камеры или пространства мира) в пространство 2D-изображения (пикселя) называется , проецирующее эту точку. (Потому что это связано с проекционным преобразованием , который определяет, как сгладить третье измерение.)

ARKit и SceneKit предлагают методы для проецирования точек (и точек непроекции, обратное преобразование, которое требует дополнительный ввод о том, как экстраполировать третье измерение).

Поскольку вы работаете с ARSCNView, вы можете просто использовать метод projectPoint . (Это унаследовано от суперкласса SCNView и определено в протоколе SCNSceneRenderer, но по-прежнему применяется в AR, потому что пространство ARKit - это то же самое, что и пространство SceneKit world / scene / rootNode.) Обратите внимание, что вам нужно будет конвертировать назад и вперед между float3 и SCNVector3 для этого метода.

Также обратите внимание, что возвращаемая «2D-точка» по-прежнему является трехмерным вектором - координаты x и y являются пикселями экрана (ну, «точки», как в единицах макета UIKit), а третий относительное значение глубины. Просто сделайте CGPoint из первых двух координат для чего-то, что вы можете использовать с другим API UIKit.

Кстати, если вы используете ARKit без SceneKit, есть также projectPoint на ARCamera.

2
ответ дан rickster 17 August 2018 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: