向量的点乘和叉乘是线性代数中的两种基本运算。
**向量的点乘(内积)** 向量a = [a1, a2, a3]和b = [b1, b2, b3]的点乘定义为:
a · b = a1_b1 + a2_b2 + a3*b3
点乘的几何意义:两个向量的点乘等于它们的模长的乘积和夹角的余弦值的乘积。它反映了两个向量的"相似性"。如果两个向量的方向一致,点乘的值为正;如果两个向量方向相反,点乘的值为负。当两个向量垂直时,它们的点乘为零。
在游戏开发中,点乘常常用于计算夹角和投影。例如,你可以通过计算玩家的前向向量与某个目标的方向向量的点乘,来得到玩家是否面向目标。
![[../Picture/蓝图节点-点乘.png]]
**向量的叉乘(外积)** 向量a = [a1, a2, a3]和b = [b1, b2, b3]的叉乘定义为:
a x b = [a2_b3 - a3_b2, a3_b1 - a1_b3, a1_b2 - a2_b1]
叉乘的几何意义:叉乘的结果是一个向量,其方向垂直于原来的两个向量,长度等于原来两个向量形成的平行四边形的面积。方向可以由右手定则确定。
在游戏开发中,叉乘常用于计算法向量或是旋转。例如,你可以通过计算两个表面边缘向量的叉乘,得到这个表面的法向量。在 Unreal Engine 中,这是非常常见的操作。
总结来说,点乘和叉乘都是非常有用的工具,他们在游戏物理,光照计算,动画,和一些其他游戏逻辑中都有所应用。如果你熟悉它们的工作原理和几何意义,那么你就能更好地理解和使用游戏引擎提供的各种工具和功能。
![[../Picture/蓝图节点-叉乘.png]]
**向量的点乘**
假设你有两根箭头,点乘能告诉你这两根箭头大致指向同一个方向还是相反的方向。如果它们大致指向同一个方向,点乘结果是正的;如果它们指向相反的方向,点乘结果是负的;如果它们完全垂直,点乘结果是零。在游戏开发中,你可以用点乘来判断,例如,玩家是否面向敌人。
**向量的叉乘**
而叉乘的结果是一个新的箭头,它垂直于你最初的那两根箭头,长度则和这两根箭头形成的平行四边形的面积有关。通过右手定则,你可以确定新箭头的方向。在游戏开发中,你可以用叉乘来计算出某个平面的"上方"是哪里。例如,你可以计算出玩家所站立的地面的法线向量(这是指向"上方"的箭头)。
在Unreal Engine或其他游戏引擎中,这些计算经常被用来确定对象的位置、方向或者动画中的运动。