仅一轴旋转

Mac*_*c70 1 opengl

是否可以使用固定管道 OpenGL 旋转对象,如下所示?如果是 - 我该怎么做?0,0 点位于 3d 对象的角上,平行点必须比 0,0 点高或低已知量。我也知道物体的宽度。

旋转 http://img832.imageshack.us/img832/1686/beztytuurax.png

先感谢您。

der*_*ass 5

这不是旋转,而是剪切操作,因此是仿射变换 - 因此它可以用固定功能管道使用的常用 4x4 变换矩阵来表示。您可以通过旋转、平移和非均匀缩放的组合来实现此类效果,也可以直接指定剪切矩阵并通过 glLoadMatrix/glMultMatrix 使用它。

在绘图中,您只需沿一个轴使用剪切,因此 x 坐标保持不变。这通常可以通过如下矩阵来完成:

1 0 0 0
v 1 0 0
0 0 1 0
0 0 0 1
Run Code Online (Sandbox Code Playgroud)

保留 x、z 和 w 不变,并将 y 转换为 y+v*x,因此 v 控制剪切量。