此页面https://goocreate.com/learn/everything-you-always-wanted-to-know-about-rotation/描述了一个函数'LookAt',因为它能够旋转3D对象以面对另一个对象。的注视功能的内部动作进行说明(但在代码中未列出),为:LookAt函数
功能的工作原理是,它需要的实体和目标 位置并减去它们,以得到一个背面向量。然后它计算向上矢量和后向矢量之间的交叉乘积以得到右侧矢量 。然后它计算右边的向量和后向量之间的叉积,得到一个向上的向量,这个向量与方向和向右的向量正交,最后存储在我们的旋转矩阵3x3内在它们各自的 行中归一化的所有三个 向量。
我想复制这个没有3D功能库来帮助我。我有3D矢量减法,矩阵乘法,点和交叉乘积函数。 (我在Lua编码)
我无法弄清楚的是如何让一个物体与另一个物体朝向相同的方向(以及希望的方向)。
我已经读过,这只是一个基于角度创建旋转矩阵的问题,但是我发现通过返回一个角度来谈论3D角度中的角度,我会认为会有3个角度 - 一个为每架飞机。
我该如何构造这个旋转矩阵?我不知道我的物体面向哪个方向,这就是为什么计算物体的当前x,y,z角度的问题是一个问题。我认为我需要的是一个函数来确定一个对象的当前三维角度,并将其转换为另一个对象的旋转矩阵。