C# 在表格底部画线

C# 在表格底部画线,c#,opengl,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);

如何在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

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