c++ - 如何找出两个 vector 之间的角度是外部角度还是内部角度?

标签 c++ algorithm vector trigonometry angle

我知道如何找出 2 个 vector 之间的角度,但它总是给我内角,但我希望它总是给我逆时针方向的角度,即使它大于 180。 我正在使用 C++,但这并不重要,因为我需要了解理论。

这是我现在用的formula

最佳答案

您正在寻找 atan2(y,x) 函数 ( http://en.wikipedia.org/wiki/Atan2 )。如果你给它一个 2D vector 的两个分量,它会给出 vector 与 x 轴的逆时针方向的角度。要解决您的具体问题,请尝试:

atan2(v_y, v_x) - atan2(u_y, u_x)

如果答案超出您想要的角度范围,您可以增加或减少 360 度。

关于c++ - 如何找出两个 vector 之间的角度是外部角度还是内部角度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15054593/

相关文章:

algorithm - 从/向文件读取/写入 std::unordered_map 的更快方法

c++ - 将 vector move 到 unordered_set

c++ - shared_ptr 到可变长度结构

c++ - 为什么将 char 指针流式传输到 cout 不打印地址?

c++ - 创建自己的链表时出错

algorithm - 为什么插入一个排序数组 O(n)?

c - 算法优化同时

python - 从 Numpy 中的 N 个向量中找到所有唯一的(几乎)平行 3d 向量对的最快方法

c++ - 如何将 vector 转换为数组并访问它

c++ - LNK1169 错误 C++ 与自己的类