我在书上看到的程序
glOrtho(-100*aspectratio, 100*aspectratio, -100.0, 100.0, 1.0, -1.0);
书上解释说,六个参数前两个是x轴最小坐标和最大坐标,中间两个是y轴,最后两个是z轴值.glRectf(-25.0f, 25.0f, 25.0f, -25.0f);
就可以画一个矩形.但是我只需要画一个2D的图形,所以我觉得后面z轴的参数无所谓的,我改成0,0.之后,结果显示的图像不正确,后两个参数0,0,显示就不正确,如果是其它值就能够显示正确.谁能帮我解释一下.
glOrtho(-100*aspectratio, 100*aspectratio, -100.0, 100.0, 1.0, -1.0);
书上解释说,六个参数前两个是x轴最小坐标和最大坐标,中间两个是y轴,最后两个是z轴值.glRectf(-25.0f, 25.0f, 25.0f, -25.0f);
就可以画一个矩形.但是我只需要画一个2D的图形,所以我觉得后面z轴的参数无所谓的,我改成0,0.之后,结果显示的图像不正确,后两个参数0,0,显示就不正确,如果是其它值就能够显示正确.谁能帮我解释一下.
GLdouble right,
GLdouble bottom,
GLdouble top,
GLdouble near,
GLdouble far)
它创建一个平行视景体(就是一个长方体空间区域)。实际上这个函数的操作是创建一个正射投影矩阵,并且用这个矩阵乘以当前矩阵。其中近裁剪平面是一个矩形,矩形左下角点三维空间坐标是(left,bottom,-near),右上角点是(right,top,-near);远裁剪平面也是一个矩形,左下角点空间坐标是(left,bottom,-far),右上角点是(right,top,-far)。注意,near和far都是正值。只有在视景体里的物体才能显示出来,我感觉你最后两个参数取得有点问题,而且你改成0,0后,视景体深度没有了,整个视景体都被压成个平面了,当然就显示不正确了。
我只是个初学者,你说的太深奥了,完全看不懂.
建议你用gluOrtho2D,这个方法可以二维坐标投影到屏幕上的矩阵,并把当前矩阵与它相乘。
裁减区域为矩形:它的左下角坐标为(left,bottom)
右上角为(right,top)
http://hi.baidu.com/starloooooove/album/item/7aeb614ee245b138b2de056a.html#IMG=7aeb614ee245b138b2de056a