OpenGL的填充属性函数之线框图方法

来源:互联网 发布:pkpm结构软件 编辑:程序博客网 时间:2024/05/16 19:13

OPNEGL的填充属性函数之————————

线框图方法

我们可以仅显示多边形的边,这生成线框图或多边形的空心显示,也可以通过显示一组顶点来显示多边形,主要由glPolygonMode()函数来选定。

另一个显示多边形的选项是在填充内部的同时用不同的颜色或图案来显示他的边或顶点。这通过指定该多边形两次来实现。

还是先配置好环境,然后编写c++代码,我写的实现的是填充内部的同时用不同的颜色显示他的边,其他的功能只要稍微修改代码即可。代码如下:

#include <windows.h>

#include <GL/gl.h>

#include <GL/glu.h>

#include <GL/glut.h>

void display(void)

{

glClear(GL_COLOR_BUFFER_BIT);

    glColor3f(0.0,1.0,0.0);

glBegin(GL_TRIANGLES);

glVertex2i(50,50);

glVertex2i(150,50);

glVertex2i(75,150);

glEnd();

glLineWidth(4.0);//为了更清楚的显示,可以将线宽设为4.o像素

glColor3f(1.0,0.0,0.0);

glPolygonMode(GL_FRONT,GL_LINE);//多边形的前面仅显示它的边

    glBegin(GL_TRIANGLES);

glVertex2i(50,50);

glVertex2i(150,50);

glVertex2i(75,150);

glEnd();

glFlush ();

}

void myinit (void) 

{

glClearColor (0.0, 0.0, 0.0, 1.0);

glMatrixMode (GL_PROJECTION);       // Set projection parameters.

gluOrtho2D (0.0, 400.0, 0.0, 150.0);

//glShadeModel (GL_FLAT); 

}

int main(int argc, char** argv)

{

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);

glutInit (&argc, argv);

//glutInitPosition 

glutInitWindowPosition(0, 0);

glutInitWindowSize (350, 150);      

glutCreateWindow ("An Example OpenGL Program"); 

//glutInitWindow (argv[0]);

myinit();

glutDisplayFunc(display);

glutMainLoop();

}

原创粉丝点击