画线底部的形式

时间:2013-03-20 03:31:46

标签: c# opengl

如何在OpenGL的视口底部绘制一个水平框?这是在顶部绘制它。怎么了?

var H = window height;
var len = 20;

gl.Vertex3d(0, H - len, 0);       //top     left
gl.Vertex3d(Width, H - len, 0);   //top     right
gl.Vertex3d(Width, H + len, 0);   //bottom  left
gl.Vertex3d(0, H + len, 0);       //bottom  right

1 个答案:

答案 0 :(得分:2)

OpenGL的默认坐标空间Y指向上方。你可以改变它,或者你可以改变你的顶点,这取决于你将要做什么以及你习惯了什么。在您发布的情况下,它只是一个四边形,您可能只需更改顶点并执行以下操作:

gl.Vertex3d(0, len, 0);       //top     left
gl.Vertex3d(Width, len, 0);   //top     right
gl.Vertex3d(Width, -len, 0);   //bottom  left
gl.Vertex3d(0, -len, 0);       //bottom  right

如果你正在绘制很多其他东西,你可以在绘制之前根据需要设置当前的变换矩阵(并可能在之后恢复它),通过以下方式做一些事情:

gl.matrixMode(GL_PROJECTION);
gl.ortho(left, right, top, bottom, near, far); // Note reversal of top and bottom