Я пытаюсь разместить виртуальный объект в 2 метрах от устройства в северном направлении, используя значение компаса, но мне не удается получить фиксированную точку в пространстве.
Объект скользит, когда я поворачиваю устройство вокруг оси Y.
Например, когда я поворачиваюсь влево, объект практически вращается в противоположном направлении, он появится на экране слева и исчезнет справа.
Я использую C # Xamarin Android, Huawei P20 Pro, и я попробовал много предложений из того, что Google показал мне для проблемы северной арки.
Я чувствую, что что-то упустил в своей ротационной работе,
но я просто не могу его найти ...
Я откатился до самого простого теста:
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);
}