【问题标题】:Calculate X angle between ImageTarget and ARCamera in Vuforia Unity?在 Vuforia Unity 中计算 ImageTarget 和 ARCamera 之间的 X 角度?
【发布时间】:2018-10-25 05:11:29
【问题描述】:

我有一个 imageTarget,我用 ARCamera 跟踪该 imageTarget,我想找到 imageTarget 相对于 ARCamera(移动设备)的角度 X,因为我需要将我的对象(imageTarget)移向相机。我在 Unity 中使用 Vuforia。如果可能,请提供代码示例,因为我是 Unity 新手,不太了解。我在这里与您分享我的努力。我正在使用此代码来计算角度,我认为它不正确。请审查它。请帮我。

Transform dummy = new GameObject("Dummy").transform;
dummy.SetParent(trackableEventHandler.transform);
dummy.LookAt(Camera.main.transform, trackableEventHandler.transform.up);
float angle = Mathf.Atan2(dummy.forward.z, dummy.forward.x) - Mathf.Atan2(trackableEventHandler.transform.forward.z, trackableEventHandler.transform.forward.x);
angle *= Mathf.Rad2Deg;
text.text = angle.ToString();

【问题讨论】:

    标签: c# unity3d vuforia arcamera


    【解决方案1】:

    试试这个

    Transform dummy = new GameObject("Dummy").transform;
    dummy.SetParent(trackableEventHandler.transform);
    dummy.LookAt(Camera.main.transform, trackableEventHandler.transform.up);
    float angle = Vector3.Angle(Camera.main.transform.forward, dummy.position - Camera.main.transform.position);
    text.text = angle.ToString();
    

    编辑:对于有符号的角度,请改用它

    float angle = Vector3.SignedAngle(Camera.main.transform.forward, dummy.position - Camera.main.transform.position, Vector3.up);
    

    对于 2D 有符号角度,请改用它

    float angle = Vector2.SignedAngle(Vector2(Camera.main.transform.forward.x, Camera.main.transform.forward.z), Vector2(dummy.positionx.x - Camera.main.transform.position.x, dummy.positionx.z - Camera.main.transform.position.z));
    

    【讨论】:

    • 它只显示X的正值,它不应该在不同的X轴上为负和正? @Ryolu
    • @user3151301 Vector3.Angle 返回相机朝向的方向与假人距离相机的方向之间的绝对角度
    • 我的 ImageAsset 将是机器人,所以我想相对于 ARCamera 左右移动它,我只需要那个角度,因此根据我的理解,向左移动的角度必须为负,向右移动机器人角度将是积极的,请帮助我找到那个角度。谢谢
    • 是的,现在我得到了正角和负角,但问题是我将手机向上向下移动,它也在改变角度,当设备向左或向右移动时我需要改变角度,角度必须向上或向下移动不改变?你能帮忙吗?
    • 尝试将Vector3.up改为dummy.up
    猜你喜欢
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    相关资源
    最近更新 更多