Opengl 处理不同的坐标系

Opengl 处理不同的坐标系,opengl,Opengl,所以我做了很多数学运算,我遇到了不同的事情,坐标平面 从底部的零开始,沿y轴向上上升 然而,在我的程序中,情况正好相反。零位于屏幕顶部,向上移动,沿y轴向下移动 我一直在通过更新我的数学方程来解决这个问题 有没有更简单的方法?将其视为具有负Y比例的缩放变换,并将其与您正在应用的任何其他变换一起滚动?我假设你在做3D工作,需要做很多4x4矩阵变换 编辑:关于,我认为变换矩阵如下所示: 1 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 0 你可以把方程中的变换重构

所以我做了很多数学运算,我遇到了不同的事情,坐标平面 从底部的零开始,沿y轴向上上升

然而,在我的程序中,情况正好相反。零位于屏幕顶部,向上移动,沿y轴向下移动

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


有没有更简单的方法?

将其视为具有负Y比例的缩放变换,并将其与您正在应用的任何其他变换一起滚动?我假设你在做3D工作,需要做很多4x4矩阵变换

编辑:关于,我认为变换矩阵如下所示:

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

你可以把方程中的变换重构成一组变换矩阵。

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

我看到你用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向上增加屏幕