【问题标题】:Computer Graphics Coordinates with glu (OpenGL)使用 glu (OpenGL) 的计算机图形坐标
【发布时间】:2016-02-05 01:11:13
【问题描述】:

我很难弄清楚 glu 中的坐标系是如何工作的,有几个问题需要解决。

GLJPanel canvas = new GLJPanel();
frame.setSize(400,600); // Size in pixels of the frame we draw on
frame.getContentPane().add(canvas);

glu.gluOrtho2D(-100.0, 100.0, -200.0, 200.0);

gl.glViewport(100,100,200,300);

如果一个点有世界坐标(-50,-75),它在视口坐标系中的坐标是多少?

还有一个(不是很具体的代码):

gluOrtho2D(-1.0, 0.0, -1.5, 0.0) and glViewport(0,300,200,300)
gluOrtho2D(0.0, 1.0, 0.0, 1.5) and glViewport(200,0,200,300)

两条截断的精灵曲线将位于何处?

现在我想我可以解决这些问题,但我对坐标系的工作原理感到迷茫。

【问题讨论】:

    标签: java opengl coordinate-systems glu


    【解决方案1】:

    世界坐标是任意的,你可以选择它们。在这种情况下,(-50, -75)。

    MVP 矩阵和投影变换将它们转换为 剪辑空间坐标,该坐标在 (-1, -1, -1) 到 (+1, +1, +1) 之间变化。在这种情况下,(-0.5,-0.375)。此转换受您使用 gluOrtho2D() 的影响,或者在更现代的程序中,受顶点着色器的输出影响。

    视口坐标是像素,在这种情况下从 (100, 100) 到 (300, 400)。您只需缩放剪辑空间坐标即可进行转换。像素中心位于半整数坐标处,因此窗口左下角的像素位于 (0.5, 0.5)。您的点位于 (200, 193.75)。此转换受glViewport() 的使用影响。

    我不知道什么是“精灵曲线”。

    【讨论】:

    • 我有一张它的照片上传它只是为了展示我什么时候有机会。谢谢你的解释。
    猜你喜欢
    • 2013-03-12
    • 1970-01-01
    • 2014-04-27
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多