首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获得ARKit特征点的UIKit坐标?

如何获得ARKit特征点的UIKit坐标?
EN

Stack Overflow用户
提问于 2018-07-14 01:51:28
回答 1查看 1.2K关注 0票数 2

我有一个ARSCNView,我正在跟踪场景中的特征点。如何从特征点的3D世界坐标获得特征点的2D坐标(如屏幕中该点的坐标)?

(本质上与sceneView.hitTest相反)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-14 03:13:25

将一个点从3D空间(通常是相机或世界空间)转换到2D视图(像素)空间称为投影该点。(因为它涉及到定义如何展平第三个维度的projection transform。)

ARKit和SceneKit都提供了投影点的方法(以及取消投影点的方法,这是一种需要额外输入如何外推第三维的反向转换)。

因为您使用的是ARSCNView,所以可以只使用projectPoint方法。(这是从超类SCNView继承并在SCNSceneRenderer协议中定义的,但仍然适用于AR,因为ARKit世界空间与SceneKit世界/场景/根节点空间相同。)注意:对于该方法,您需要在float3SCNVector3之间来回转换。

还要注意,返回的"2D“点仍然是一个3D向量-- xy坐标是屏幕像素( UIKit布局单位中的”点“),第三个是相对深度值。只需从前两个坐标创建一个CGPoint,就可以与其他UIKit应用程序接口一起使用。

顺便说一句,如果你使用的是没有SceneKit的ARKit,在ARCamera上也有一个projectPoint方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51330453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档