翻转用glVertex2f()绘制的绘图?

时间:2012-02-13 04:13:23

标签: c++ opengl

我使用glVertex2f()在数组中绘制一些点,我需要颠倒它。我在glViewport()中绘制它,所以我可以调整它并移动它。但我不知道如何翻转它。

我必须使用gluOrth2d()吗?我不完全理解gluOrth2d()和glViewport()之间的区别以及何时使用它。

2 个答案:

答案 0 :(得分:2)

您将使用以下方式垂直翻转场景(颠倒)

glScalef(1, -1, 1);

或使用以下方式水平翻转:

glScalef(-1, 1, 1);

答案 1 :(得分:1)

glViewport()设置视口。也就是说它设置了整个几何体将被绘制的窗口的哪个部分。请注意,它接受整数(!!)而不是浮点数,因为我们需要精确到渲染将发生的屏幕部分。

gluOrtho ,例如 gluPerspective glFrustrum e.t.c.用于设置投影矩阵

请注意,即使您在程序中可能没有使用gluOrtho2D(),也应该使用它,因为您总是需要自己设置透视投影。

编辑 :(更正为符合评论中的指示)

为了翻转整个场景,假设它是2D,你可以这样做

glScalef(1,-1,1);

将当前模型视图矩阵与缩放矩阵相乘,从而有效地翻转场景。

由于您似乎需要帮助理解openGL矩阵的使用,我想提供这两个链接,我希望可以提供帮助:

Explains without lots of math

Explains with a bit more math