You are on page 1of 2

C:\Users\madar\Documents\Visual Studio 2010\Projects\prgm7\prgm7\prg7.

cpp 1
1 #include<stdio.h>
2 #include<GL/glut.h>
3 typedef float point[3];
4 point v[]={{0.,0.0,1.0}, {0.0,0.942809,-0.3333}, {-0.816497,-0.471405,-0.3333}, {0.816497,-0.471405,0.
3333}};
5 int n;
6 void triangle(point a,point b,point c)
7 {
8 glBegin(GL_POLYGON);
9 glVertex3fv(a);
10 glVertex3fv(b);
11 glVertex3fv(c);
12 glEnd();
13 }
14 void divide_triangle(point a,point b,point c,int m)
15 {
16 point v1,v2,v3;
17 int j;
18 if(m>0)
19 {
20 for(j=0;j<3;j++)
21 v1[j]=(a[j]+b[j])/2;
22 for(j=0;j<3;j++)
23 v2[j]=(a[j]+c[j])/2;
24 for(j=0;j<3;j++)
25 v3[j]=(c[j]+b[j])/2;
26 divide_triangle(a,v1,v2,m-1);
27 divide_triangle(c,v2,v3,m-1);
28 divide_triangle(b,v3,v1,m-1);
29 }
30 else(triangle(a,b,c));
31 }
32 void tetrahedron(int m)
33 {
34 glColor3f(1.0,0.0,0.0);
35 divide_triangle(v[0],v[1],v[2],m);
36 glColor3f(0.0,1.0,0.0);
37 divide_triangle(v[3],v[2],v[1],m);
38 glColor3f(0.0,0.0,1.0);
39 divide_triangle(v[0],v[3],v[1],m);
40 glColor3f(0.0,0.0,0.0);
41 divide_triangle(v[0],v[2],v[3],m);
42 }
43 void display(void)
44 {
45 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
46 glLoadIdentity();
47 tetrahedron(n);
48 glFlush();
49 }
50 void myReshape(int w,int h)
51 {
52 glViewport(0,0,w,h);
53 glMatrixMode(GL_PROJECTION);
54 glLoadIdentity();
55 if(w<=h)
56 glOrtho(-2.0,2.0,-2.0*(GLfloat)h/(GLfloat)w,
57 2.0*(GLfloat)h/(GLfloat)w,-10.0,10.0);
58
59 else
60 glOrtho(-2.0*(GLfloat)w/(GLfloat)h,
61 2.0*(GLfloat)w/(GLfloat)h,-2.0,2.0,-10.0,10.0);
62 glMatrixMode(GL_MODELVIEW);
63 glutPostRedisplay();
64 }
65 void main(int argc,char ** argv)
66 {
67 printf("No of Division?: ");
68 scanf("%d",&n);
69 glutInit(&argc,argv);
70 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
71 glutCreateWindow("3D gasket");
72 glutReshapeFunc(myReshape);
73 glutDisplayFunc(display);
C:\Users\madar\Documents\Visual Studio 2010\Projects\prgm7\prgm7\prg7.cpp 2
74 glEnable(GL_DEPTH_TEST);
75 glClearColor(1.0,1.0,1.0,0.0);
76 glutMainLoop();
77 }

You might also like