gpt4 book ai didi

iPhone 3D 指南针

转载 作者:行者123 更新时间:2023-12-03 21:19:43 27 4
gpt4 key购买 nike

我正在尝试为 iPhone 4 构建一个应用程序,该应用程序使用户能够“指向”硬编码的目的地,并且目的地所在的位置会出现一个点。

首先,我使用指南针制作水平指南针(这将覆盖左/右旋转):

// Heading
nowHeading = heading.trueHeading;

// Shift image (horizontal compass)
float shift = bearing - nowHeading;
destinationImage.center = CGPointMake(shift+160, destinationImage.center.y);

我将点移动了 160 像素,因为屏幕宽度为 320 像素。我现在的问题是,如何扩展这段代码来处理向上和向下?这意味着如果我将手机放在 table 上,该点将不会显示。我必须指向(就像拍照一样)目的地才能将其绘制在屏幕上。我已经实现了加速器。但我不知道如何联合这些组件来解决我的问题。

最佳答案

方位应取决于相机的视野。对于 iPhone 4,水平角度 View 为 47.5,因此 320 点/47.5 = 每度 xxx 点,用它来水平移动。您还必须向加速度计添加一个自适应滤波器,您可以从 AccelerometerGraph 获取一个Apple 的项目。

您在一个轴(轴承)上进行了旋转,您应该从加速度计获得另外两个轴上的旋转。两个轴的 atan2 为您提供第三个轴的旋转。前往UIAcceleration想象一个轴物理地刺穿设备,如果这有帮助的话double xAngle = atan2(acceleration.y, acceleration.z);因此,一旦您将旋转颠倒过来,您就可以用垂直视野重复您对水平方向所做的操作,例如:iPhone 为 60。

这将是一个粗略的实现:)但是实现平滑的移动是很困难的。您可以做的一件事是使用陀螺仪获得更快的响应并使用加速度计定期纠正其信号。请参阅此演讲以了解 future 的麻烦:Sensor Fusion on Android Devices 。这是website专用于卡尔曼滤波器。如果您敢于使用四元数,我推荐 Andrew J. Hanson 的“可视化四元数”。

关于iPhone 3D 指南针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6002728/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com