假设我有3个向量,forward = Vector(1,0,0),up = Vector(0,1,0),right = Vector(0,0,1)。
现在我用其他东西替换向上向量,但是向前和向右应该保持与新向上向量相关,因为它们必须与旧向量相关。
e.g。如果新的向上矢量是Vector(1,0,0),则forward应为Vector(0,-1,0),right应为Vector(0,0,1)。
可以使用什么数学公式?
答案 0 :(得分:1)
如果没有旋转轴,则无法执行此操作。即使在简化(轴对齐)情况下,一个矢量更改为相反方向,您需要一个旋转轴:
两者(实际上有四个)
forward( 0,-1, 0), up(1,0,0), right(0, 0, 1) and
forward( 0, 1, 0), up(1,0,0), right(0, 0,-1)
是有效的解决方案。
然而,从Vector(0,1,0)到Vector(1,0,0)的旋转,它(可能)隐含地定义旋转轴(0,0,1)和角度PI / 2。因此,您可以构建一个旋转矩阵,并将该矩阵与另外两个向量相乘。