2013-03-20 66 views
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 

回答

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