如何使用ARCore

时间:2019-05-22 13:40:42

标签: c# xamarin.forms augmented-reality arcore compass-geolocation

我正在尝试使用指南针值将一个虚拟对象放置在距设备2公里(北向)的位置,但是我无法在空间中获得固定点。

当我绕Y轴旋转设备时,对象正在滑动。 例如,当我向左转时,该对象实际上正朝相反的方向旋转,它将从左出现在屏幕上,而将消失在右边。

我正在使用C#Xamarin Android(华为P20 Pro),并且我已经尝试过谷歌向我展示的关于北极北向问题的许多建议。

我觉得我的轮换工作中缺少一些东西, 但我只是找不到...

我回过头来进行了最简单的测试:

if (camera.TrackingState == TrackingState.Tracking)
{
    // Calculate difference angle from magnetic north
    Quaternion qr = Quaternion.CreateFromAxisAngle(Vector3.UnitY, (float) toRadian(angleFromNorth));

    // Clear anchor
    mAnchors.Clear();

    // Position relative to phone only with compass value rotation
    Vector3 posObject = Vector3.Transform(new Vector3(0, 0, -2), qr);
    Pose pos = Pose.MakeTranslation(posObject.X, 0, posObject.Z);

    // Add anchor
    Anchor anchor = mSession.CreateAnchor(pos);
    mAnchors.Add(anchor);
}

0 个答案:

没有答案