You are on page 1of 2

1 #include <iostream>

2 #include <cmath>
3 #include <glut.h>
4
5 using namespace std;
6
7 void init()
8 {
9 glOrtho(-10, 10, -10, 10, -10, 10);
10 }
11
12 void func1()
13 {
14 //glClearColor(0.76, 0.34, 1, 0);
15
16 glClearColor(0.6, 0.4, 0.5, 0);
17 glClear(GL_COLOR_BUFFER_BIT);
18 glColor3f(0.2, 0.3, .42);
19 glPointSize(5);
20 glLineWidth(5);
21
22 float PI = 2*acos(0);
23 //first ear
24 for (float x = 0; x <= PI*2; x += 0.001) {
25 glBegin(GL_LINES);
26 glVertex2f(-2+1.5*sin(x), 1.5*cos(x));
27 glVertex2f(-2+1.5*sin(x+0.03), 1.5*cos(x+0.03));
28 glEnd();
29 }
30
31 //second ear
32 for ( x = 0; x <= PI*2; x += 0.001) {
33 glBegin(GL_LINES);
34 glVertex2f(2+1.5*sin(x), 1.5*cos(x));
35 glVertex2f(2+1.5*sin(x+0.001), 1.5*cos(x+0.001));
36 glEnd();
37 }
38
39 //face structure
40 for ( x = 0; x <= PI*2; x += 0.001) {
41 glBegin(GL_POINTS);
42 glVertex2f(3.5*sin(x), -5+3.5*cos(x));
43 glEnd();
44 }
45
46 //nose
47 for ( x = 0; x <= PI*2; x += 0.001) {
48 glBegin(GL_LINES);
49 glVertex2f(1.2*sin(x), -5.7+0.7*cos(x));
50 glVertex2f(1.2*sin(x+0.001), -5.7+0.7*cos(x+0.001));
51 glEnd();
52 }
53
54 //hair on nose
55 for (x = -1.2; x <= 1.2; x += 0.001) {
56 glBegin(GL_LINES);
57 glVertex2f(1.5*sin(x), -5.5+1*cos(x));
58 glVertex2f(1.5*sin(x+0.001), -5.5+1*cos(x+0.001));
59 glEnd();
60 }
61
62 //first eye
63 for ( x = 0; x <= PI*2; x += 0.001) {
64 glBegin(GL_LINES);
65 glVertex2f(-0.7+0.5*sin(x), -3.5+1*cos(x));
66 glVertex2f(-0.7+0.5*sin(x+0.001), -3.5+1*cos(x+0.001));
67 glEnd();
68 }
69
70 //second eye
71 for (x = 0; x <= PI*2; x += 0.001) {
72 glBegin(GL_LINES);
73 glVertex2f(0.7+0.5*sin(x), -3.5+1*cos(x));
74 glVertex2f(0.7+0.5*sin(x+0.001), -3.5+1*cos(x+0.001));
75 glEnd();
76 }
77
78 //second eyelid
79 for ( x = 0; x <= PI*2; x += 0.001) {
80 glBegin(GL_LINES);
81 glVertex2f(0.7+0.3*sin(x), -3.9+0.7*cos(x));
82 glVertex2f(0.7+0.3*sin(x+0.001), -3.9+0.7*cos(x+0.001));
83 glEnd();
84 }
85
86 //first eyelid
87 for ( x = 0; x <= PI*2; x += 0.001) {
88 glBegin(GL_LINES);
89 glVertex2f(-0.7+0.3*sin(x), -3.9+0.7*cos(x));
90 glVertex2f(-0.7+0.3*sin(x+0.001), -3.9+0.7*cos(x+0.001));
91 glEnd();
92 }
93
94 //face upper
95 for ( x = PI/2+0.3; x <= 3*PI/2-0.3; x += 0.001) {
96 glBegin(GL_LINES);
97 glVertex2f(2.5*sin(x), -5.1+2*cos(x));
98 glVertex2f(2.5*sin(x+0.001), -5.1+2*cos(x+0.001));
99 glEnd();
100 }
101
102 //face lower
103 for ( x = PI/2; x <= 3*PI/2; x += 0.001) {
104 glBegin(GL_LINES);
105 glVertex2f(1.3*sin(x), -6.9+0.9*cos(x));
106 glVertex2f(1.3*sin(x+0.001), -6.9+0.9*cos(x+0.001));
107 glEnd();
108 }
109
110 //face lower second
111 for ( x = PI/2+0.3; x <= 3*PI/2-0.3; x += 0.001) {
112 glBegin(GL_LINES);
113 glVertex2f(2.5*sin(x), -5.1+2*cos(x));
114 glVertex2f(2.5*sin(x+0.001), -5.1+2*cos(x+0.001));
115 glEnd();
116 }
117
118 glEnd();
119 glFlush();
120 }
121
122 int main(int argc, char **argv)
123 {
124 glutInit(&argc, argv);
125 glutInitDisplayMode(GLUT_SINGLE);
126 glutInitWindowSize(600, 600);
127 glutInitWindowPosition(100, 100);
128 glutCreateWindow("Mickey Mouse");
129 init();
130 glutDisplayFunc(func1);
131 glutMainLoop();
132
133 return 0;
134 }
135
136

You might also like