Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<gl/glut.h>
- #include <cmath>
- float d = 0, e = 0, f = 0, b = 0;
- float kol = -1.99; float dol = -1.99; float lol = -1.99;
- void fish3()
- {
- glColor3f(0.0, 1.0, 0.0);//green fish
- glBegin(GL_POLYGON);
- glVertex2f(0.8+d, 0.15);
- glVertex2f(0.85+d, 0.2);
- glVertex2f(0.95+d, 0.15);
- glVertex2f(0.85+d, 0.10);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(0.93+d, 0.15);
- glVertex2f(0.98+d, 0.19);
- glVertex2f(0.98+d, 0.11);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(0.855+d, 0.2);
- glVertex2f(0.925+d, 0.25);
- glVertex2f(0.87+d, 0.15);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(0.857+d, 0.1);
- glVertex2f(0.925+d, 0.05);
- glVertex2f(0.87+d, 0.15);
- glEnd();
- glColor3f(0.0, 0.0, 0.0);
- glPointSize(4.0);
- glBegin(GL_POINTS);
- glVertex2f(0.83+d, 0.165);
- glEnd();
- }
- void fish3back()
- {
- glColor3f(0.0, 1.0, 0.0);//green fish
- glBegin(GL_POLYGON);
- glVertex2f(-0.8 + d, 0.15);
- glVertex2f(-0.85 + d, 0.2);
- glVertex2f(-0.95 + d, 0.15);
- glVertex2f(-0.85 + d, 0.10);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.93 + d, 0.15);
- glVertex2f(-0.98 + d, 0.19);
- glVertex2f(-0.98 + d, 0.11);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.855 + d, 0.2);
- glVertex2f(-0.925 + d, 0.25);
- glVertex2f(-0.87 + d, 0.15);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.857 + d, 0.1);
- glVertex2f(-0.925 + d, 0.05);
- glVertex2f(-0.87 + d, 0.15);
- glEnd();
- glColor3f(0.0, 0.0, 0.0);
- glPointSize(4.0);
- glBegin(GL_POINTS);
- glVertex2f(-0.83 + d, 0.165);
- glEnd();
- }
- void fish4()
- {
- glColor3f(0.5, 0.6, 0.0);// green1 fish
- glBegin(GL_POLYGON);
- glVertex2f(-0.7 - d, -0.15);
- glVertex2f(-0.75 - d, -0.2);
- glVertex2f(-0.85 - d, -0.15);
- glVertex2f(-0.75 - d, -0.1);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.83 - d, -0.15);
- glVertex2f(-0.9 - d, -0.19);
- glVertex2f(-0.9 - d, -0.11);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.755 - d, -0.2);
- glVertex2f(-0.795 - d, -0.25);
- glVertex2f(-0.775 - d, -0.15);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.755 - d, -0.1);
- glVertex2f(-0.795 - d, -0.05);
- glVertex2f(-0.775 - d, -0.15);
- glEnd();
- glColor3f(0.0, 0.0, 0.0);
- glPointSize(4.0);
- glBegin(GL_POINTS);
- glVertex2f(-0.73 -d, -0.135);
- glEnd();
- }
- void fish4back()
- {
- glColor3f(0.5, 0.6, 0.0);// green1 fish
- glBegin(GL_POLYGON);
- glVertex2f(+0.7 - d, -0.15);
- glVertex2f(+0.75 - d, -0.2);
- glVertex2f(+0.85 - d, -0.15);
- glVertex2f(+0.75 - d, -0.1);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(+0.83 - d, -0.15);
- glVertex2f(+0.9 - d, -0.19);
- glVertex2f(+0.9 - d, -0.11);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(+0.755 - d, -0.2);
- glVertex2f(+0.795 - d, -0.25);
- glVertex2f(+0.775 - d, -0.15);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(+0.755 - d, -0.1);
- glVertex2f(+0.795 - d, -0.05);
- glVertex2f(+0.775 - d, -0.15);
- glEnd();
- glColor3f(0.0, 0.0, 0.0);
- glPointSize(4.0);
- glBegin(GL_POINTS);
- glVertex2f(+0.73 - d, -0.135);
- glEnd();
- }
- void fish5()
- {
- glColor3f(0.0, 0.0, 1.0);//blue fish
- glBegin(GL_POLYGON);
- glVertex2f(-0.7 - e, -0.25);
- glVertex2f(-0.75 - e, -0.3);
- glVertex2f(-0.775 - e, -0.3);
- glVertex2f(-0.85 - e, -0.25);
- glVertex2f(-0.775 - e, -0.2);
- glVertex2f(-0.75 - e, -0.2);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.83 - e, -0.25);
- glVertex2f(-0.9 - e, -0.29);
- glVertex2f(-0.9 - e, -0.21);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.775 - e, -0.2);
- glVertex2f(-0.79 - e, -0.125);
- glVertex2f(-0.75 - e, -0.2);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.75 - e, -0.3);
- glVertex2f(-0.795 - e, -0.35);
- glVertex2f(-0.775 - e, -0.3);
- glEnd();
- glColor3f(0.0, 0.0, 0.0);
- glPointSize(4.0);
- glBegin(GL_POINTS);
- glVertex2f(-0.73 - e, -0.235);
- glEnd();
- }
- void fish5back()
- {
- glColor3f(0.0, 0.0, 1.0);//blue fish
- glBegin(GL_POLYGON);
- glVertex2f(+0.7 - e, -0.25);
- glVertex2f(+0.75 - e, -0.3);
- glVertex2f(+0.775 - e, -0.3);
- glVertex2f(+0.85- e, -0.25);
- glVertex2f(+0.775 - e, -0.2);
- glVertex2f(+0.75 - e, -0.2);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(+0.83 - e, -0.25);
- glVertex2f(+0.9 - e, -0.29);
- glVertex2f(+0.9 - e, -0.21);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(+0.775 - e, -0.2);
- glVertex2f(+0.79- e, -0.125);
- glVertex2f(+0.75 - e, -0.2);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(+0.75 - e, -0.3);
- glVertex2f(+0.795 - e, -0.35);
- glVertex2f(+0.775 - e, -0.3);
- glEnd();
- glColor3f(0.0, 0.0, 0.0);
- glPointSize(4.0);
- glBegin(GL_POINTS);
- glVertex2f(+0.73 - e, -0.235);
- glEnd();
- }
- void fish6()
- {
- glColor3f(1.0, 0.0, 0.0);//red1 fish
- glBegin(GL_POLYGON);
- glVertex2f(0.7 + f, 0.25);
- glVertex2f(0.75 + f, 0.3);
- glVertex2f(0.775 + f, 0.3);
- glVertex2f(0.85 + f, 0.25);
- glVertex2f(0.775 + f, 0.2);
- glVertex2f(0.75 + f, 0.2);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(0.83 + f, 0.25);
- glVertex2f(0.9 + f, 0.29);
- glVertex2f(0.9 + f, 0.21);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(0.775 + f, 0.3);
- glVertex2f(0.79 + f, 0.4);
- glVertex2f(0.75 + f, 0.3);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(0.775 + f, 0.2);
- glVertex2f(0.79 + f, 0.1);
- glVertex2f(0.75 + f, 0.2);
- glEnd();
- glColor3f(0.0, 0.0, 0.0);
- glPointSize(4.0);
- glBegin(GL_POINTS);
- glVertex2f(0.73 + f, 0.265);
- glEnd();
- }
- void fish6back()
- {
- glColor3f(1.0, 0.0, 0.0);//red1 fish
- glBegin(GL_POLYGON);
- glVertex2f(-0.7 + f, 0.25);
- glVertex2f(-0.75 + f, 0.3);
- glVertex2f(-0.775 + f, 0.3);
- glVertex2f(-0.85 + f, 0.25);
- glVertex2f(-0.775 + f, 0.2);
- glVertex2f(-0.75 + f, 0.2);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.83 + f, 0.25);
- glVertex2f(-0.9 + f, 0.29);
- glVertex2f(-0.9 + f, 0.21);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.775 + f, 0.3);
- glVertex2f(-0.79 + f, 0.4);
- glVertex2f(-0.75 + f, 0.3);
- glEnd();
- glBegin(GL_TRIANGLES);
- glVertex2f(-0.775 + f, 0.2);
- glVertex2f(-0.79 + f, 0.1);
- glVertex2f(-0.75 + f, 0.2);
- glEnd();
- glColor3f(0.0, 0.0, 0.0);
- glPointSize(4.0);
- glBegin(GL_POINTS);
- glVertex2f(-0.73 + f, 0.265);
- glEnd();
- }
- void plant()
- {
- glColor3f(0.0, 1.0, 0.0);
- glLineWidth(4.0);
- glBegin(GL_LINES);
- glVertex2f(0.9, -0.8);
- glVertex2f(0.8, -0.9);
- glVertex2f(0.8, -0.8);
- glVertex2f(0.8, -0.9);
- glVertex2f(0.7, -0.8);
- glVertex2f(0.8, -0.9);
- glVertex2f(0.75, -0.8);
- glVertex2f(0.8, -0.9);
- glVertex2f(0.85, -0.8);
- glVertex2f(0.8, -0.9);
- glVertex2f(0.725, -0.8);
- glVertex2f(0.8, -0.9);
- glVertex2f(0.775, -0.8);
- glVertex2f(0.8, -0.9);
- glVertex2f(0.825, -0.8);
- glVertex2f(0.8, -0.9);
- glVertex2f(0.875, -0.8);
- glVertex2f(0.8, -0.9);
- glLineWidth(4.0);
- glBegin(GL_LINES);
- glVertex2f(0.5, -0.95);
- glVertex2f(0.6, -0.85);
- glVertex2f(0.5, -0.85);
- glVertex2f(0.5, -0.95);
- glVertex2f(0.4, -0.85);
- glVertex2f(0.5, -0.95);
- glVertex2f(0.45, -0.85);
- glVertex2f(0.5, -0.95);
- glVertex2f(0.55, -0.85);
- glVertex2f(0.5, -0.95);
- glVertex2f(0.425, -0.85);
- glVertex2f(0.5, -0.95);
- glVertex2f(0.475, -0.85);
- glVertex2f(0.5, -0.95);
- glVertex2f(0.525, -0.85);
- glVertex2f(0.5, -0.95);
- glVertex2f(0.575, -0.85);
- glVertex2f(0.5, -0.95);
- glEnd();
- glLineWidth(4.0);
- glBegin(GL_LINES);
- glVertex2f(0.175, -0.9);
- glVertex2f(0.275, -0.8);
- glVertex2f(0.175, -0.8);
- glVertex2f(0.175, -0.9);
- glVertex2f(0.075, -0.8);
- glVertex2f(0.175, -0.9);
- glVertex2f(0.125, -0.8);
- glVertex2f(0.175, -0.9);
- glVertex2f(0.225, -0.8);
- glVertex2f(0.175, -0.9);
- glVertex2f(0.1, -0.8);
- glVertex2f(0.175, -0.9);
- glVertex2f(0.15, -0.8);
- glVertex2f(0.175, -0.9);
- glVertex2f(0.2, -0.8);
- glVertex2f(0.175, -0.9);
- glVertex2f(0.25, -0.8);
- glVertex2f(0.175, -0.9);
- glEnd();
- glLineWidth(4.0);
- glBegin(GL_LINES);
- glVertex2f(-0.175, -0.95);
- glVertex2f(-0.275, -0.85);
- glVertex2f(-0.175, -0.85);
- glVertex2f(-0.175, -0.95);
- glVertex2f(-0.075, -0.85);
- glVertex2f(-0.175, -0.95);
- glVertex2f(-0.125, -0.85);
- glVertex2f(-0.175, -0.95);
- glVertex2f(-0.225, -0.85);
- glVertex2f(-0.175, -0.95);
- glVertex2f(-0.1, -0.85);
- glVertex2f(-0.175, -0.95);
- glVertex2f(-0.15, -0.85);
- glVertex2f(-0.175, -0.95);
- glVertex2f(-0.2, -0.85);
- glVertex2f(-0.175, -0.95);
- glVertex2f(-0.25, -0.85);
- glVertex2f(-0.175, -0.95);
- glEnd();
- glLineWidth(4.0);
- glBegin(GL_LINES);
- glVertex2f(-0.475, -0.9);
- glVertex2f(-0.575, -0.8);
- glVertex2f(-0.475, -0.9);
- glVertex2f(-0.475, -0.8);
- glVertex2f(-0.375, -0.8);
- glVertex2f(-0.475, -0.9);
- glVertex2f(-0.425, -0.8);
- glVertex2f(-0.475, -0.9);
- glVertex2f(-0.525, -0.8);
- glVertex2f(-0.475, -0.9);
- glVertex2f(-0.4, -0.8);
- glVertex2f(-0.475, -0.9);
- glVertex2f(-0.45, -0.8);
- glVertex2f(-0.475, -0.9);
- glVertex2f(-0.5, -0.8);
- glVertex2f(-0.475, -0.9);
- glVertex2f(-0.55, -0.8);
- glVertex2f(-0.475, -0.9);
- glEnd();
- glLineWidth(4.0);
- glBegin(GL_LINES);
- glVertex2f(-0.9, -0.85);
- glVertex2f(-0.8, -0.95);
- glVertex2f(-0.8, -0.85);
- glVertex2f(-0.8, -0.95);
- glVertex2f(-0.7, -0.85);
- glVertex2f(-0.8, -0.95);
- glVertex2f(-0.75, -0.85);
- glVertex2f(-0.8, -0.95);
- glVertex2f(-0.85, -0.85);
- glVertex2f(-0.8, -0.95);
- glVertex2f(-0.725, -0.85);
- glVertex2f(-0.8, -0.95);
- glVertex2f(-0.775, -0.85);
- glVertex2f(-0.8, -0.95);
- glVertex2f(-0.825, -0.85);
- glVertex2f(-0.8, -0.95);
- glVertex2f(-0.875, -0.85);
- glVertex2f(-0.8, -0.95);
- glEnd();
- }
- void sand()
- {
- glColor3f(1.0,1.0,0.7);
- glBegin(GL_POLYGON);
- glVertex2f(-1.0,-1.0);
- glVertex2f(-1.0,-0.849);
- glVertex2f(1.0,-0.849);
- glVertex2f(1.0,-1.0);
- glEnd();
- }
- void bubble()
- {
- glPushMatrix();
- glTranslatef(0.8, -0.8-b,0);//1
- glColor3f(0.0, 0.8, 1.0);
- glutSolidSphere(0.05, 45, 15);
- glPopMatrix();
- glPushMatrix();
- glTranslatef(0.5, -0.8 - b, 0);//2
- glColor3f(0.0, 0.8, 1.0);
- glutSolidSphere(0.05, 45, 15);
- glPopMatrix();
- glPushMatrix();
- glTranslatef(0.2, -0.8 - b, 0); //3
- glColor3f(0.0, 0.8, 1.0);
- glutSolidSphere(0.05, 45, 15);
- glPopMatrix();
- glPushMatrix();
- glTranslatef(-0.2, -0.8 - b, 0); //4
- glColor3f(0.0, 0.8, 1.0);
- glutSolidSphere(0.05, 45, 15);
- glPopMatrix();
- glPushMatrix();
- glTranslatef(-0.5, -0.8 - b, 0); //5
- glColor3f(0.0, 0.8, 1.0);
- glutSolidSphere(0.05, 45, 15);
- glPopMatrix();
- glPushMatrix();
- glTranslatef(-0.8, -0.8 - b, 0); //6
- glColor3f(0.0, 0.8, 1.0);
- glutSolidSphere(0.05, 45, 15);
- glPopMatrix();
- glClearColor(0.0, 1.0, 1.0, 1.0);
- }
- void display(void)
- {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- sand();
- plant();
- if (d >= dol)
- {
- dol = -1.99;
- d = d - 0.0007;
- fish3();
- fish4();
- }
- if (d < dol)
- {
- d = d + 0.0007;
- fish3back();
- dol = 1.99;
- fish4back();
- }
- if (e >= kol )//-1.99
- {
- kol = -1.99;
- e = e - 0.0005;
- fish5();
- }
- if (e < kol)
- {
- e = e + 0.0005;
- fish5back();
- kol = 1.99;
- }
- if (f >= lol)
- {
- lol = -1.99;
- f = f - 0.0002;
- fish6();
- }
- if (f < lol)
- {
- f = f + 0.0002;
- fish6back();
- lol = 1.99;
- }
- if (b >= -1.99)
- {
- b = b - 0.001;
- }
- else
- b = 0;
- bubble();
- glutPostRedisplay();
- glFlush();
- glutSwapBuffers();
- }
- int main(int argc, char** argv)
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowPosition(0, 0);
- glutInitWindowSize(500, 500);
- glutCreateWindow("fish");
- glutDisplayFunc(display);
- glutMainLoop();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement