Three.js 向量的外积(叉积 向量积)

什么是外积?

外积,数学中又称向量积、叉积,物理中称矢积、叉乘,是一种在向量空间中向量的二元运算。与点积不同,它的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量和垂直。其应用也十分广泛,通常应用于物理学光学和计算机图形学中。


如图所示 OC 就是 OA和OB的外积

Three.js 中使用cross()函数计算外积

实际运用

首先使用三角函数,创建一个360个点组成的圆。

接下来我们沿着路线移动卡车,truck变量指向着卡车的mesh,遍历360个点更新卡车的坐标。

好了,卡车按我们的设计动起来了,但是方向不太对,最后我们就来更新卡车的方向。


为了获得法向量,可以从AB向量的叉积获得它,该矢量是连接当前位置(点A)和下一帧(点B)的位置的向量和作为z方向上的单位向量的AZ向量。

然后将计算的法向量设置为tramp的向上向量。向上向量可以使用方法设置THREE.Mesh类的up属性的set()。

更新向上向量不会反映在对象的外观中。为了反映向上向量设置,需要调lookAt()方法。

好了大功告成,卡车开始朝着正确的方向行驶了。