处理不同的坐标系

时间:2009-12-21 05:09:24

标签: opengl

所以我做了很多数学运算,我遇到了坐标平面不同的东西 从底部开始为零,在y轴上向上移动。

然而在我的计划中却是相反的。零位于屏幕的顶部,然后向上移动,沿y轴向下移动。

我一直在通过更新我的数学方程来解决这个问题。

有更简单的方法吗?

4 个答案:

答案 0 :(得分:2)

我看到你用openGL标记了它。我不确定你在这里做什么,但如果你没有意识到你可以改变gluLookAt函数的向上方向,即

gluLookAt(0.0,0.0,100.0,    // Camera position
    0.0,0.0,0.0,            // Camera direction
    0.0,1.0,0.0);           // Camera up direction

所以这会让相机在Z轴上看着原点,y会增加屏幕。

答案 1 :(得分:0)

将其视为具有负Y刻度的缩放变换,并将其与您正在应用的其他变换一起滚动?我假设您正在进行3D工作,并且必须进行大量的4x4矩阵变换。

编辑:参考the Wikipedia article,我认为变换矩阵将如下所示:

1  0  0  0
0 -1  0  0
0  0  1  0
0  0  0  0

答案 2 :(得分:0)

您可以将方程中的变换重构为一组变换矩阵。

答案 3 :(得分:0)

任何“更简单的方式”完全取决于你正在做什么。你在做数学建模吗? 3D渲染?简单的GUI设置?如果您正在进行大量矩阵变换,则可以将差异滚动到-1,然后转换页面的高度。如果你不是,那么改变你的方程可能是你最好的选择。