glm的orientedAngle()函数中的“引用向量”是什么?

时间:2016-10-26 04:02:12

标签: c++ geometry angle vector-graphics glm-math

https://glm.g-truc.net/0.9.4/api/a00210.html

我试图在3d空间中找到两个向量之间的有符号角度。

我似乎无法在数学上找到这个函数中的“参考向量”。因此,我不知道如何使用该功能。谢谢!

1 个答案:

答案 0 :(得分:2)

3D中两个矢量之间没有签名角度这样的概念。如果没有任何选定的方向,则只能获得范围0..Pi中的角度(例如,使用标量乘积,对参数顺序不变)。

想象一下,你在玻璃板上绘制了两个向量A和B(从一点开始)。从玻璃的一侧看 - 你看到你需要将A旋转45度到B.从另一侧看 - - 你看到你需要旋转A -45度到B。

如果你有一些参考矢量(轴),它有助于定义包含两个矢量(正法线方向)的平面方向,你也可以确定角度符号。

例如,矢量 A,B,Ref 的序列可以形成“右”的三元组(想象右手的第一,第二,第三个拇指),所以你应该转向 正方向使其与向量 B 重合,绕轴 Ref (如果 Ref 垂直 A B )。

或者这个序列可能是'左'三元组,所以你应该向负方向转向 A ,使其与向量 B 重合。

(抱歉我丑陋的英语)