如何检查向量是否朝向相同的方向

新手上路,请多包涵

我正在研究一个问题,我在右手坐标系中工作,其中 y 轴是直线向上的。我提供了一个表示 3 维向量的结构,如下所示:

 struct vec{float x; float y; float z; };

我需要编写一个函数,该函数接受一个表示北方的单位向量和一个表示玩家前进向量的单位向量,如果他们面向的北方多于南方,则返回。不幸的是,我不知道从这里去哪里,我相信我必须做类似的事情:

 PlayerDirection = sqrt((PlayerVector.x *= PlayerVector.x)
                     + (PlayerVector.y *= PlayerVector.y)
                     + (PlayerVector.z *= PlayerVector.z));

但我不知道从这里去哪里。任何帮助/解释都会有所帮助,谢谢。

原文由 user9564128 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

对两个向量应用点积。如果两个向量之间的角度小于 90 度,点积将为正,否则为负。

原文由 RAM 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题