我正在研究一个问题,我在一个Y轴垂直的右手坐标系中工作。我提供了一个表示3维向量的结构,如下所示:
struct vec{float x; float y; float z; };
我需要编写一个函数,该函数接受代表北方的单位向量和代表玩家向前的向量的单位向量,如果他们面对的是北方多于南方,则返回。不幸的是,我不知道该从哪里去,我相信我必须做些类似的事情:
PlayerDirection = sqrt((PlayerVector.x *= PlayerVector.x)
+ (PlayerVector.y *= PlayerVector.y)
+ (PlayerVector.z *= PlayerVector.z));
但是我不知道从这里去哪里。任何帮助/解释都会有所帮助,谢谢。
最佳答案
将点积应用于两个向量。如果两个向量之间的角度均小于90度,则点积将为正,否则为负。
关于c++ - 如何检查 vector 是否朝向相同方向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49535295/