首页 > 其他 > 详细

OpenGL直线点画模式

时间:2014-04-03 09:38:06      阅读:562      评论:0      收藏:0      [点我收藏+]

程序来自《OpenGL编程指南第七版》

bubuko.com,布布扣
 1 #include "stdafx.h"
 2 #include <Windows.h>//头文件一定要加上,因为windows版本的gl.h和glu.h文件内部使用的宏是在windows.h中定义的
 3 #include <gl/GL.h>
 4 #include <gl/GLU.h>
 5 #include <gl/glut.h>
 6 static GLfloat spin=0.0;
 7 int drawOneLine(float x1,float y1,float x2,float y2) 
 8 {
 9     glBegin(GL_LINES);
10     glVertex2f((x1),(y1));
11     glVertex2f((x2),(y2));
12     glEnd();
13     return 0;
14 }
15 
16 void init (void)
17 {
18     glClearColor(0.5,0.5,0.5,0.0);
19     glShadeModel(GL_FLAT);
20 }
21 void display(void)
22 {
23     int i;
24     glClear(GL_COLOR_BUFFER_BIT);
25     glColor3f(1.0,1.0,0.0);
26     glEnable(GL_LINE_STIPPLE);
27     glLineStipple(1,0x0101);//注意glLineStipple用法以及每个参数的意义
28     drawOneLine(50.0,125.0,150.0,125.0);
29     glLineStipple(1,0x00FF);
30     drawOneLine(150.0,125.0,250.0,125.0);
31     glLineStipple(1,0x1C47);
32     drawOneLine(250.0,125.0,350.0,125.0);
33     glLineWidth(5.0);
34     glLineStipple(1,0x0101);
35     drawOneLine(50.0,100.0,150.0,100.0);
36     glLineStipple(1,0x00FF);
37     drawOneLine(150.0,100.0,250.0,100.0);
38     glLineStipple(1,0x1C47);
39     drawOneLine(250.0,100.0,350.0,100.0);
40     glLineWidth(1.0);
41     glLineStipple(1,0x1C47);
42     glBegin(GL_LINE_STRIP);
43         for (i=0;i<7;i++)
44         glVertex2f(50.0+((GLfloat)i+50.0),75.0);
45     glEnd();
46     for (i=0;i<6;i++)
47         drawOneLine(50.0+((GLfloat)i+50.0),50.0,50.0+((GLfloat)(i+1)+50.0),50.0);
48     glLineStipple(5,0x1C47);
49     drawOneLine(50.0,25.0,350.0,25.0);
50     glDisable(GL_LINE_STIPPLE);
51     glFlush();
52 }
53 
54 void reshape(int w,int h)
55 {
56     glViewport(0,0,(GLsizei)w,(GLsizei)h);
57     glMatrixMode(GL_PROJECTION);
58     glLoadIdentity();
59     gluOrtho2D(0.0,(GLdouble)w,0.0,(GLdouble)h);
60 }
61 
62 int main(int argc,char**argv)
63 {
64     glutInit(&argc,argv);
65     glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
66     glutInitWindowSize(400,150);
67     glutInitWindowPosition(100,100);
68     glutCreateWindow(argv[0]);
69     init();
70     glutDisplayFunc(display);
71     glutReshapeFunc(reshape);
72     glutMainLoop();
73     return 0;
74 }


bubuko.com,布布扣

运行的效果图:

 bubuko.com,布布扣

OpenGL直线点画模式,布布扣,bubuko.com

OpenGL直线点画模式

原文:http://www.cnblogs.com/mothe123/p/3641867.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!