首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在命中测试ARKit SceneKit中找到飞机的中心

在命中测试ARKit SceneKit中找到飞机的中心,可以通过以下步骤实现:

  1. 创建一个命中测试(Hit Test)来检测场景中的物体。命中测试是一种用于确定屏幕上的点是否与场景中的物体相交的技术。
  2. 首先,需要创建一个命中测试的位置,可以使用ARFrame中的camera属性获取当前相机的位置和方向。
  3. 使用ARSCNView的hitTest方法进行命中测试。该方法接受一个CGPoint参数,表示屏幕上的点,然后返回一个命中测试结果的数组。
  4. 遍历命中测试结果数组,找到与飞机相关的命中测试结果。可以通过检查命中测试结果的node属性,判断是否为飞机节点。
  5. 找到飞机节点后,可以获取其位置信息。可以使用飞机节点的worldPosition属性获取其在世界坐标系中的位置。
  6. 如果需要找到飞机的中心点,可以使用飞机节点的boundingBox属性获取其包围盒信息。然后计算包围盒的中心点坐标。

综上所述,通过以上步骤可以在命中测试ARKit SceneKit中找到飞机的中心。

ARKit是苹果公司推出的增强现实开发框架,用于在iOS设备上创建增强现实应用程序。SceneKit是苹果公司提供的用于3D图形渲染和动画的框架。命中测试是ARKit和SceneKit中常用的技术,用于检测屏幕上的点是否与场景中的物体相交。

推荐的腾讯云相关产品是腾讯云AR服务,该服务提供了丰富的AR开发工具和资源,可用于构建AR应用程序。具体产品介绍和链接地址可以参考腾讯云官方网站的AR服务页面(https://cloud.tencent.com/product/ar)。

请注意,本回答仅提供了解决问题的一种方法,并推荐了相关产品,具体实现方式可能因开发环境和需求而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS版 使用ARKit和Swift创建交互式Domino游戏

实现以下委托方法,以便在更新飞机的范围或中心值时收到通知: func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode...有关平面检测的更深入的文章可以在这里找到。 创建多米诺骨牌并使用命中测试将它们放在地板上 我们的飞机检测完成后,我们现在准备进行一些命中测试!...我们使用简单的SCNBox创建我们的多米诺骨牌。为其添加绿色,创建一个放置在其中的节点,并使用我们通过命中测试检测到的坐标来定位它。...要做到这一点,我们必须保存先前放置的多米诺骨牌的位置,然后计算它到我们的命中测试的当前位置的距离。...我们添加到场景中的地板是不透明的,因此应用到它上面的任何阴影都是不可见的。如何在保持隐形的同时为地板添加阴影?自iOS 11以来,SceneKit已经添加了一个新策略来实现这一目标。

2.3K30

ARKit示例 - 第2部分:平面检测+可视化

在另一篇文章中,我们将测试不同的环境,以了解跟踪的执行情况。...SCNNode实例是ARKit创建的SceneKit节点,它有一些属性设置,如方向和位置,然后我们得到一个锚实例,这告诉我们使用有关已找到的特定锚的更多信息,例如大小和中心飞机 锚实例实际上是一个ARPlaneAnchor...类型,从中我们可以得到飞机的范围和中心信息。...渲染飞机 通过上述信息,我们现在可以在虚拟世界中绘制SceneKit 3D平面。为此,我们创建一个继承自SCNNode 的Plane类。...提取结果 下面是我走过房子的一部分,从上面的视频中检测到的飞机的一些屏幕截图: 这是我厨房里的一个小岛,ARKit很好地找到了范围并正确定位了飞机以匹配凸起的表面 image.png 这是一个看着地板的镜头

2.9K20
  • ARKit示例 - 第3部分:添加几何和物理乐趣

    https://github.com/markdaws/arkit-by-example/tree/part3 命中测试 正如您在第一个教程中看到的,我们可以在任何X,Y,Z位置插入虚拟3D内容,它将在现实世界中渲染和跟踪...在这个应用程序中,当用户单击屏幕时,我们执行命中测试,这涉及获取2D屏幕坐标并通过2D屏幕点(在投影平面上具有3D位置)从相机原点发射Ray并进入现场。...如果光线与任何平面相交,我们得到命中结果,然后我们获取光线和平面相交的3D坐标,并将我们的内容放置在该3D位置。...正如您在上面的代码中所看到的,我们为每个立方体提供了一个physicsBody,它指示了SceneKit物理引擎,这个几何应该由物理引擎控制。...停止飞机检测 一旦我们绘制了世界并拥有多个平面,我们就不希望ARKit继续为我们提供新的平面并可能更新现有的平面,因为这可能会影响我们已经添加到世界的几何体。

    99910

    ARKit上手 添加3D物体

    开发语言选择Swift,Swift天然亲和ARKit,很多网上的Demo都是用Swift写的,这样也方便移植和借鉴。 然后连接你的测试设备并运行,app就可以运行了。...该模版APP会在实施摄像头镜头中展示一架飞机的3D模型。如下图所示: ? 3D飞机 实际项目中,你也可以不使用该模版来创建项目,直接引入相关库也可以进行开发。...的功能,下面简单介绍ARKit的工作原理: ARKit工作原理 在ARKit中,创建虚拟3D模型其实可以分为两个步骤: 相机捕捉现实世界图像–由ARKit实现 在图像中显示虚拟3D模型/2D模型–由SceneKit...3D场景中则是由SceneKit框架来完成,每个虚拟物体都是一个节点SCNNode,每个节点构成一个场景SCNScene。...下图是ARKit与SceneKit的框架关系图: ?

    2.2K10

    ARKit by Example - 第1部分:AR立方体

    要在ARKit中呈现3D内容,我们将使用SceneKit:https://developer.apple.com/scenekit/这是一个在iOS设备上渲染3D图形的框架。...移动并观察飞机在现实世界中保持的位置,即使您移动相机也是如此: ?...这堂课有几件事: 从视图中的设备相机渲染实时视频流,作为3D场景的背景 ARKit的3D坐标系与SceneKit的3D坐标系匹配,因此在此视图中渲染的对象将自动匹配增强的ARKit世界视图 自动移动虚拟...SceneKit 3D相机以匹配ARKit跟踪的3D位置,因此不需要额外的代码来连接ARKit移动事件以映射到SceneKit 3D渲染。...要向场景添加内容,首先要创建一些几何体,几何体可以是复杂的形状,或简单的形状,如球体,立方体,平面等。然后将几何体包裹在场景节点中并将其添加到场景中。然后SceneKit将遍历场景图并渲染内容。

    1.2K30

    ARKit介绍

    此外,您无法在模拟器中使用它,因此您必须使用最新的测试版更新您的iPhone / iPad(iOS 11 SDK仅适用于Xcode 9)。...您甚至可以使用Metal,SceneKit和Unity和虚幻引擎等第三方工具渲染3D对象。ARKit以卓越的性能完成所有这一切,并且有很好的文档记录。 需要一些想法才能使用ARKit?...免责声明:我使用SceneKit玩过一次,所以我对它有一些基本的了解。...如果您没有这些知识或任何3D渲染,如Metal,OpenGL或Unity,那么我建议您在使用ARKit之前查看其中一个,因为它将帮助您理解我将呈现的代码(例如,矢量和矩阵等3D概念以及可以对它们执行的一般操作...此方法在摄像机图像中搜索视图坐标中指定点的有效曲面,并返回一个列表,其中命中测试结果的排序距离最近(距离摄像机的距离)。

    2.3K20

    ARKit 简介

    第二层:平面和边界感知 碰撞测试和光线估算,让虚拟内容和现实环境无缝衔接。 ? 第三层,渲染,支持各种渲染制作工具,目标就是简单易用,和其它插件融合度好。 ?...处理器A9及以上(6S机型及以上) 实现步骤 一个简单的AR场景实现所需要的技术和实现步骤如下: 1.多媒体捕捉现实图像:如摄像头 2.三维建模:3D立体模型 3.传感器追踪:主要追踪现实世界动态物体的六轴变化...ARKit提供了两种主要AR技术Content Technology 分别是: Scenekit: 基于3D场景 SpriteKit:基于2D场景 3,然后系统就为我们新建了一个简单的项目和场景...,使用3DMax软件可以创建,这里系统有一个默认的3D飞机) SCNScene *scene = [SCNScene sceneNamed:@"art.scnassets/ship.scn"];...// Set the scene to the view //设置ARKit的场景为SceneKit的当前场景(SCNScene是Scenekit中的场景,类似于UIView)

    2.5K60

    ARKit和CoreLocation:第一部分

    image.png ARWorldTrackingConfiguration:用于跟踪设备方向,位置和检测相机记录的特征点(如相机记录的表面)的配置。...worldAlignment:****ARSession上的worldAlignment属性定义ARSession如何在3D坐标映射系统上解释ARFrame的运动数据,该系统用于跟踪世界并构建增强现实体验...SceneKit 关于ARKit最酷的事情之一是它与Apple现有的图形渲染引擎很好地集成:SpriteKit,Metal和SceneKit。我最常用的是SceneKit,它用于渲染3D对象。 ?...个人项目 - 8月12日 ARSCN查看文档: 因为ARKit自动将SceneKit空间与现实世界匹配,所以放置虚拟对象以使其看起来保持真实世界位置只需要适当地设置该对象的SceneKit位置。...让我们构建我们的第一个增强现实体验!为此,我们将在相机前放置1米蓝色球。 定义 SCNSphere:一个球体定义一个表面,其每个点与其中心等距离,该中心位于其局部坐标空间的原点。

    2.3K20

    iOS ARKit教程:用裸露的手指在空中画画

    iOS中的ARKit入门 截至撰写本文时,ARKit是iOS 11的一部分,它仍处于测试阶段。...ARKit可以与Sprite SceneKit或Metal一起使用。在Apple ARKit示例中,我们使用的是Apple SceneKit,这是Apple提供的3D引擎。...Focus Square由示例代码提供,而不是ARKit库,这是我们开始使用此示例代码的主要原因之一。您可以在示例代码中包含的自述文件中找到有关它的更多信息。下图显示了投影在桌子上的焦点方块: ?...在ARKit中检测平面 ARKit可以检测新平面,更新现有平面或删除它们。为了以方便的方式处理平面,我们将创建一个虚拟的SceneKit节点,该节点保存平面位置信息和对焦点方块的引用。...随着计算机视觉的进步,以及为小工具(如深度相机)添加更多AR友好的硬件,我们可以访问我们周围越来越多的物体的3D结构。

    2.2K30

    苹果的增强现实框架:ARKit

    其他型号处理器(6S以下)只能追踪设备的方向。 ARKit的提供了自带的两个渲染类:ARSCNView和ARSKView,后者用来渲染2D模型。之前鲜有问津的SceneKit算是有了用武之地。...理论上 ARKit 在双目摄像头上的表现应该优于单目,这里需要具体测试,如何来平衡用户体验。 .scn文件还是知识一个简单的3维模型编辑器,支持的文件格式少,对模型、光照的编辑方式不太友好。...目前ARKit支持的3D渲染引擎,有sceneKit,Unity3D,UE。...最终决定还是用sceneKit,主要出于一下考虑: ARKit目前对Unity3D,UE的支持没有sceneKit好。 sceneKit用OC写,可以OCS。...[1504061940187_8772_1504061940277.jpg] 当pitch为90°时,pitch与yew的旋转轴重合了,这时飞机丧失了一个旋转的维度。

    3.4K00

    聚焦位置-选择您喜欢的位置放置虚拟物体

    我们将讨论世界变换和命中测试,这是ARKit的两个重要概念。 下载 要学习本教程,您需要Xcode 10或更高版本,以及平面检测的最终Xcode项目。...guard let focusSquareLocal = focusSquare else {return} 命中测试 我之前提到过,我们希望使用屏幕中心作为焦点方块的基准。...命中测试结果 命中测试返回结果列表,我们只想要这些结果的第一个元素。第一个元素是离相机最近的平面。例如,如果您将相机对准您的桌子,则您希望桌子不是地板。...let hitTest = sceneView.hitTest(screenCenter, types: .existingPlaneUsingExtent) 像以前一样,获得命中测试的第一个结果,我们将检查它是否击中了飞机...我们现在有焦点方块向我们展示我们是否找到了合适的平面。到目前为止,它是为了帮助我们更好地可视化飞机和命中测试的结果。我们将在委托方法中注释掉与网格相关的代码。

    2.4K30

    iOS ARKit教程:赤手在空中绘画

    iOS中的ARKit入门 在撰写本文的时候,ARKit是iOS 11的一部分,目前仍处于测试阶段。因此,要想开始,你需要在iPhone 6s及以上版本下载iOS 11测试版,以及新的Xcode测试版。...ARKit可以与Sprite SceneKit或Metal配合使用。在Apple ARKit的例子中,我们使用的是iOS SceneKit,由Apple提供的3D引擎。...焦点方是由样例代码提供的,而不是ARKit库,这是我们开始使用这个示例代码的主要原因之一。您可以在示例代码中包含的readme文件中找到更多关于它的信息。...在下一节中,我们将解释如何检测飞机,以及如何相应地定位焦点广场。在下一节中,我们将解释如何检测平面,以及如何相应地定位焦点。 检测平面 ARKit可以探测到新的平面,更新现有的平面,或者移除它们。...我们希望将焦点方块放在屏幕的中心,但投射在最近探测到的平面上。

    1.8K10

    ARKit

    例如,您可以在摄像机视图中显示用户的面部并提供逼真的虚拟遮罩。您还可以省略摄像机视图并使用ARKit面部表情数据为虚拟角色设置动画,如iMessage的Animoji应用程序中所示。...class ARConfiguration AR会话配置的抽象基类。 显示 class ARSCNView 用于显示增强使用3D SceneKit内容的摄像机视图的AR体验的视图。...世界追踪 创建AR体验,允许用户使用设备的后置摄像头探索周围世界中的虚拟内容。 建立您的第一个AR体验 创建运行AR会话的应用程序,并使用平面检测使用SceneKit放置3D内容。...快速拍摄:为增强现实创造游戏 了解Apple如何为WWDC18构建精选演示,并获得使用ARKit,SceneKit和Swift制作自己的多人游戏的技巧。...命中测试和真实世界的位置 class ARHitTestResult 通过检查AR会话的设备摄像机视图中的点找到有关真实世界表面的信息。

    2.2K20

    平面检测-搜索真实世界的表面

    现在我们已经完成了正确运行ARKit项目的所有基本设置,我们希望我们的设备能够坐在水平表面上。这是飞机检测。在本节中,我们将学习如何激活平面检测。我们将熟悉锚点以及如何使用它们将对象放置在锚点上。...水平平面检测 首先,我们需要打开配置的平面检测属性并将其设置为水平,以检测平面(如地板或桌子)。...import SceneKit import ARKit 延期 这个文件将作为ViewController类的扩展,这里的代码将成为该类的一部分。...如果跟踪的对象是平面,让我们进行场景测试。从技术上讲,如果锚是一个ARPlaneAnchor。...您现在正在学习如何在代码中应用它。 飞机位置 所以,就像我们为手表所做的步骤一样,我们需要定位它。将平面节点放在检测到的曲面的中心。

    2.9K30

    ARKit 的配置-在您的AR项目的幕后

    在本节中,我们将看看如何在后面配置提供的ARKit模板。我们将发现什么是世界跟踪和AR会话。同样,我们将学习如何将一些调试选项应用于场景中的指导。...AR场景视图 ARKit模板已经放入对象库中可用的ARSCNView视图类中。此视图反映了相机看到的内容并将其显示在屏幕上。...UIKIT的 UIKit是开发iOS应用程序的基本框架,它可以集成标签,按钮,条形图和各种视图控制器等组件。 SCENEKIT 如前所述,SceneKit是我们选择的处理3D对象的渲染技术。...ARKIT 我们需要ARKit来让我们体验增强现实。没有它,我们将无法跟踪我们的设备在世界上的位置,将我们的虚拟对象放在桌子上,甚至放在房间里。...统计信息提供有关场景渲染性能的信息,如每秒帧数(fps),动画,物理等.Apple建议将fps设置为60.在您的设备上,您可以单击+按钮展开统计栏更多细节。

    2.5K20

    将模型添加到场景中 - 在您的环境中显示3D内容

    我们也熟悉了热门测试和世界变换。现在,我们拥有显示虚拟对象所需的所有工具。在本教程中,我们将学习如何检索模型并使用按钮的触发器将其呈现在场景中。一旦显示,我们将隐藏焦点方块。...为了能够正确添加我们的按钮,我们必须删除当前的 ARSCNView并首先从对象库添加UIView作为底层。接下来,选择相同的ARKit SceneKit View并将其放回UIView之上。...import UIKit import SceneKit import ARKit extension ViewController {} 检索模型 在扩展内部,创建一个新函数来检索我们选择的模型是一个很好的主动...3轴的中心,那么您可以在此处执行此操作。...当然,我们已经在场景中添加了我们的模型,我们还没有把它放在表面上。所以,让我们这样做。 命中测试 显然,我们将再次使用命中测试,方法与之前相同。

    5.5K20

    SceneKit 场景编辑器-为您的AR体验构建3D舞台

    在本节中,我们将了解SceneKit的场景编辑器。这是一个很好的空间,可以帮助您可视化3D模型,编辑它,播放动画,模拟物理等。...下载 要学习本教程,您需要Xcode 10或更高版本,以及从简介到ARKit的最终Xcode项目。您可以下载本节的最终Xcode项目,以帮助您与自己的进度进行比较。...您可以将文件夹命名为您想要的任何名称,但这是它在Xcode的ARKit模板中的标签,它是一个非常好的标准。名称本身就是解释性的。如果展开文件夹,请注意此处存储了飞船场景。...如果您有Xcode 9,它位于右侧面板的底部。您将看到可添加的对象列表。黄色物体是灯光,而绿色物体是几何形状。蓝色是相机,还有其他物体,如物理和动画。...相对位置 现在,我们希望将屏幕放在表壳的正中间。因此,x和y位置与情况相同,即为0。为了计算它的z位置,我们知道该情况的长度为1.14,其中心位于该值的一半,即0.57。

    5.6K20

    深入浅出 ARCore

    ARCore的历史以及与苹果ARKit的竞争我就不多讲了,在网上可以搜到一堆信息。但网上深入讲解ARCore的确实不多。...用户交互 ARCore使用 hit testing(命中测试) 获取与手机屏幕相对应的(x,y)坐标(如通过点击屏幕等交互方式),将其投射到 Camera 的3D坐标系中,并返回与命中点射线相交的所有平面和特征点...如我们要在ARCore环境中放置一个虚拟对象,首先要确定一个锚点,以确保ARCore能随着时间的推移不断跟踪对象的位置。通常情况下,会根据命中测试返回的姿势创建一个锚点。...姿势改变这项技术特别关键,只有得到姿势,ARCore才可以随着时间的推移不断更新环境对象(像飞机和特征点)的位置。ARCore将平面和点认为是可跟踪的特殊类型的对象。...通过以上三点,可以说目前学习ARCore的门槛相较于苹果的ARKit要难不少。

    3.9K10

    在库克的带领之下,苹果为VRAR领域打了一剂强心针

    WWDC 2017于今日凌晨1时(北京时间)在美国加州圣何塞麦克恩利会议中心举行。...推出AR平台ARKit 苹果在介绍iOS 11的同时,推出了一款全新的AR平台ARKit。...ARKit具有快速而稳定的运动追踪能力,可以让虚拟的物体看上去更像被实实在在放置在实体空间里,而不是漂浮在现实中。 ARKit包括快速和稳定的运动追踪,以及具有基本边界的平面估算。...在互动过程中,虚拟物品的光影变化还会根据位置不同实时变化。此外,苹果还在现场展示了利用ARKit开发的《Pokemon Go》,游戏中的精灵与周围环境更加融合,栩栩如生。...苹果还表示,ARKit全线适配 iOS 整个生态系统,故ARKit有望成为最大的AR平台。 ?

    82680
    领券