正文

(OPENGL编程指南第四版)OPENGL范例程序2.52008-03-02 22:58:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yuqiexing/33130.html

分享到:

// 范例P37.cpp : Defines the entry point for the console application.// #include <gl/glut.h> #define drawOneLine(x1,y1,x2,y2) glBegin(GL_LINES); \ glVertex2f((x1),(y1));glVertex2f((x2),(y2));glEnd(); void display(){ glClear(GL_COLOR_BUFFER_BIT);     //清除所有像素 glColor3f(1.0,1.0,1.0);       //设置画笔白色  /*在第1行,三条线段不同点画模式*/ glEnable(GL_LINE_STIPPLE); glLineStipple(1,0x0101); drawOneLine(50,125,150,125); glLineStipple(1,0x00ff); drawOneLine(150,125,250,125); glLineStipple(1,0x1c47); drawOneLine(250,125,350,125);  /*在第2行,三条宽线使用不同的点画模式*/ glLineWidth(5); glLineStipple(1,0x0101); drawOneLine(50,100,150,100); glLineStipple(1,0x00ff); drawOneLine(150,100,250,100); glLineStipple(1,0x1c47); drawOneLine(250,100,350,100); glLineWidth(1);  /*在第3行,6条使用“短划线/点/短划线”模式的线段组成一个相连的线带*/ glLineStipple(1,0x1c47); glBegin(GL_LINE_STRIP); for(int i=0;i<7;i++)  glVertex2f((50+i*50),75); glEnd();  /*在第4行,绘制6条独立,使用相同点画模式的线段*/ for(i=0;i<6;i++)  drawOneLine((50+(i*50)),50,(50+(50*(i+1))),50);//???  /*在第5行,绘制一条线段,点画模式重复因子为5*/ glLineStipple(5,0x1c47); drawOneLine(50,25,350,25);  glDisable(GL_LINE_STIPPLE); glFlush(); } void init(){ glClearColor(0.0,0.0,0.0,0.0);     //用黑色清除背景 /*初始化视景体*/ glShadeModel(GL_FLAT);}void reshape(int w,int h){ glViewport(0,0,(GLsizei)w,(GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0,w,0,h);}int main(int argc,char ** argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(400,150);     //初始化窗口大小 glutInitWindowPosition(100,100);    //初始化窗口位置 glutCreateWindow("hello");      //创建标题为“hello”的窗口 init();//调用初始化函数 glutDisplayFunc(display);      //注册回调函数 glutReshapeFunc(reshape); glutMainLoop();         //进入主循环处理事件 return 0;}

阅读(3024) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册