Opengl 沿直线平移和旋转立方体

Opengl 沿直线平移和旋转立方体,opengl,math,glsl,Opengl,Math,Glsl,我在三维空间中有一个立方体,在三维空间中还有一条预定义的线。 在以下条件下,如何沿给定直线平移和旋转立方体? 1-我们知道线路的起点和终点。 我们需要把立方体当作一个实体来处理。也就是说,我们不能将立方体分成两个矩形(后面和前面)来解决这个问题 所附图像说明了该问题 问题分为两部分:旋转和平移 平移部分很简单:将立方体的中心平移到直线的中心点 旋转部分: 构造一个与直线平行的单位向量(即,使直线标准化)。 拾取立方体的一条边,将其规格化。 取这两个向量的叉积,得到旋转轴。乘积的大小将是旋转角度的

我在三维空间中有一个立方体,在三维空间中还有一条预定义的线。 在以下条件下,如何沿给定直线平移和旋转立方体? 1-我们知道线路的起点和终点。 我们需要把立方体当作一个实体来处理。也就是说,我们不能将立方体分成两个矩形(后面和前面)来解决这个问题

所附图像说明了该问题


问题分为两部分:旋转和平移

平移部分很简单:将立方体的中心平移到直线的中心点

旋转部分:

  • 构造一个与直线平行的单位向量(即,使直线标准化)。
  • 拾取立方体的一条边,将其规格化。
  • 取这两个向量的叉积,得到旋转轴。乘积的大小将是旋转角度的余弦。注意标志。
    所以您希望移动立方体,使线段穿过立方体的中心,并与其中一个面垂直,对吗?仅定义一条直线,就有无限多个可能的变换,因为没有指定沿该直线的旋转。如果有第二个方向(上方向向量),则变换类似于注视矩阵。@Beta没错。这正是要求。感谢@BDL的贡献。正如Beta提到的。线段通过立方体的中心。我们不关心围绕这段旋转立方体。为了说明,我们考虑的是立方体,而不是圆柱体。就这两点?立方体的模型矩阵?六个角的坐标?