c# - 两个向量 2D 之间的角度

标签 c# vector xna

我正在尝试计算两个向量之间的角度。 我试过了,但它总是返回零:

public double GetAngle(Vector2 a, Vector2 b)
{
    double angle = Math.Atan2(b.Y, b.X) - Math.Atan2(a.Y, a.X);
    return angle;
}

GetAngle(new Vector2(1,1), new Vector2(50,50));

Vectors The angle I need

最佳答案

你应该看看 atan2 ( here ) 的文档。

您正在寻找的是找到 B(左上向量)和 A(右下向量)之间的差异,然后将其作为参数传递给 atan2

return Math.Atan2(b.Y - a.Y, b.X - a.X);

您的代码当前所做的是找到向量 b 相对于 0,0 的角度,然后减去向量 a 的角度> 引用 0,0

你总是得到 0 的原因是因为 1,150,50 在穿过 0,0 的同一条线上(两个调用都返回大约 0.785398),因此减去它们将得到 0

关于c# - 两个向量 2D 之间的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458992/

相关文章:

c# - EF 包括其他实体(通用存储库模式)

c# - 在 C# 中转换受约束的泛型类

c++ - std::sort 用于 vector 在排序自定义对象时引发错误

matlab - 向量函数始终是常数

c# - XNA 游戏在 "dragging"窗口时不更新,任何事件处理程序?

c# - XNA 的 UI 库

c# - Monogame/XNA中的下拉菜单

javascript - Razor 里面的 javascript 键值声明?

c# - 使用网络浏览器点击网页中的按钮

c++ - 在类中初始化静态 vector 最方便的方法是什么?