应用向量看向量

时间:2013-11-18 22:57:02

标签: python math vector matrix

任何人都可以帮我申请或了解如何应用向上矢量来查看矢量矩阵吗?这就是我目前正在研究矢量的方法。如果这是错误的请现在让我,但它似乎工作(只是为我的对象选择向上矢量):

pos1 = # a random vector
pos2 = # a random vector

vec3 = (pos2-pos1).GetNormalized() 
vec2 = vec3.Cross(Vector(0,1,0)).GetNormalized() 
vec1 = vec3.Cross(Vector(1,0,0)).GetNormalized() 
new_mx = Matrix(pos1,vec1,vec2,vec3) 

这个目前效果很好,因为我可以在3D空间中随机移动方向上制作一个物体点,虽然当它以负数或180°的角度进入时,物体会转动上下翻转。我如何给它一个向上的向量ie + Y来应用于这个新的矩阵?就像一条游来游去的鱼一样,它的翅膀总是以它为例。任何帮助或积分都会很棒。谢谢。

1 个答案:

答案 0 :(得分:1)

关键是,您希望跨越vec2vec3以获得最终指示:

pos1 = # start location
pos2 = # location to look at
up = # specified up vector

vec3 = (pos2 - pos1).GetNormalized()  # "lookat" vector
vec2 = vec3.Cross(up).GetNormalized()  # "right" vector
vec1 = vec2.Cross(vec3).GetNormalized()  # different from above
new_mx = Matrix(pos1,vec1,vec2,vec3)

根据您的坐标惯例,您可能需要更改上方vec1的符号以匹配硬连线坐标的方向。