gpt4 book ai didi

android - 这是 Digital Compass 或 Unity 的限制吗?

转载 作者:行者123 更新时间:2023-11-30 02:54:38 26 4
gpt4 key购买 nike

我对移动设备的AR应用很感兴趣,自然想更好地利用指南针。

我一直不得不解决的唯一问题不是指南针的抖动程度。 (角度平滑似乎可以很好地解决这个问题)我的主要问题是,当设备垂直放置时,罗盘值开始出现异常。导致屏幕上的指南针到处乱转。我在移动应用程序开发方面没有太多经验,所以我不确定是什么导致了这个问题,是 Unity 问题还是只是数字罗盘的限制。我知道其他应用程序似乎确实能够在任何方向上很好地使用指南针,但这对我来说都是愚蠢的新事物。

我绝对尝试过将手机移动成 8 字形。我要玩的设备是 Nexus 4。

using UnityEngine;
using System.Collections;

public class Compass : MonoBehaviour {

// Use this for initialization
void Start () {
Input.location.Start ();
Input.compass.enabled = true;
}

// Update is called once per frame
void Update ()
{
var heading = Input.compass.trueHeading;
transform.eulerAngles = new Vector3 (0, 0, heading);
}
}

最佳答案

前言:)

首先,我不是我将要谈论的主题的专家(不幸的是)。但是,我还是决定分享我的想法。

理论

问题可以概括为以下方式。您想要一些连续函数,它采用 3D 向量(在您的情况下是设备方向)并返回另一个与原始向量正交的向量。理论说(参见 hairy ball theorem)对于某些参数,该函数将返回零向量。如果这样的函数是罗盘,当设备垂直放置时会返回零向量(如果您曾经使用过普通的罗盘,这会很自然)。

练习

  1. 有时您希望您的应用能够判断手机后盖(后置摄像头)指向世界的哪一边。
  2. 或者甚至您想要组合方法:

    • 如果手机是平放的,请显示手机的顶部指向什么。
    • 如果手机是垂直的,请显示手机背面指向的方向。

在这两种情况下,除了指南针之外,您还需要使用陀螺仪。

关于android - 这是 Digital Compass 或 Unity 的限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23507061/

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