CG project
CG project
h>
#include <GL/glut.h>
#include <math.h>
void init() {
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
}
void River() {
glColor3ub(10,38,129);//31, 63, 96
glBegin(GL_QUADS);//..........................................boats lower
glVertex2f(-0.4f,-0.7f);
glVertex2f(-0.7f,-0.7f);
glVertex2f(-0.6f,-0.8f);
glVertex2f(-0.5f,-0.8f);
glEnd();
glColor3ub(7,1196,165);//31, 63, 96
glBegin(GL_QUADS);//..........................................boats upper
glVertex2f(0.35f,-0.8f);
glVertex2f(0.4f,-0.75f);
glVertex2f(0.5f,-0.75f);
glVertex2f(0.55f,-0.8f);
glEnd();
glColor3ub(32,212,232);
glBegin(GL_QUADS);//..........................................boats upper
glVertex2f(-0.45f,-0.7f);
glVertex2f(-0.5f,-0.65f);
glVertex2f(-0.6f,-0.65f);
glVertex2f(-0.65f,-0.7f);
glEnd();
glColor3ub(183,49,15);
glBegin(GL_QUADS);//..........................................boats lower
triangle
glVertex2f(0.7f,-0.9f);
glVertex2f(0.99f,-0.9f);
glVertex2f(0.9f,-0.99f);
glVertex2f(0.8f,-0.99f);
glEnd();
glColor3ub(223,125,27);
glBegin(GL_TRIANGLES);//..........................................boats upper
triangle
glVertex2f(0.75f,-0.9f);
glVertex2f(0.75f,-0.75f);
glVertex2f(0.9f,-0.9f);
glEnd();
glColor3ub(183,49,15);
glBegin(GL_QUADS);//..........................................boats lower
triangle
glVertex2f(-0.7f,-0.9f);
glVertex2f(-0.99f,-0.9f);
glVertex2f(-0.9f,-0.99f);
glVertex2f(-0.8f,-0.99f);
glEnd();
glColor3ub(111,111,111);//31, 63, 96
glBegin(GL_TRIANGLES);//..........................................boats upper
triangle
glVertex2f(-0.75f,-0.9f);
glVertex2f(-0.75f,-0.75f);
glVertex2f(-0.9f,-0.9f);
glEnd();
}
void Building()
{
glEnd();
glPushMatrix();
glTranslatef(-0.62,0.45,0);
glScalef(0.08,0.08,1);
//------light tower matha
glPopMatrix();
glVertex2f(-0.55f,0.44f);
glVertex2f(-0.68f,0.44f);
glVertex2f(-0.68f,0.47f);
glVertex2f(-0.55f,0.47f);
glVertex2f(-0.6f,0.31f);
glVertex2f(-0.63f,0.31f);
glVertex2f(-0.63f,0.34f);
glVertex2f(-0.6f,0.34f);
glVertex2f(-0.65f,0.31f);
glVertex2f(-0.68f,0.31f);
glVertex2f(-0.68f,0.34f);
glVertex2f(-0.65f,0.34f);
glVertex2f(-0.7f,0.31f);
glVertex2f(-0.72f,0.31f);
glVertex2f(-0.72f,0.34f);
glVertex2f(-0.7f,0.34f);
glVertex2f(-0.55f,0.31f);
glVertex2f(-0.58f,0.31f);
glVertex2f(-0.58f,0.34f);
glVertex2f(-0.55f,0.34f);
glVertex2f(-0.52f,0.31f);
glVertex2f(-0.53f,0.31f);
glVertex2f(-0.53f,0.34f);
glVertex2f(-0.52f,0.34f);
glVertex2f(-0.6f,0.21f);
glVertex2f(-0.63f,0.21f);
glVertex2f(-0.63f,0.24f);
glVertex2f(-0.6f,0.24f);
glVertex2f(-0.6f,0.11f);
glVertex2f(-0.63f,0.11f);
glVertex2f(-0.63f,0.14f);
glVertex2f(-0.6f,0.14f);
glVertex2f(-0.6f,0.01f);
glVertex2f(-0.63f,0.01f);
glVertex2f(-0.63f,0.04f);
glVertex2f(-0.6f,0.04f);
glVertex2f(-0.6f,-0.05f);
glVertex2f(-0.63f,-0.05f);
glVertex2f(-0.63f,-0.08f);
glVertex2f(-0.6f,-0.08f);
glVertex2f(-0.6f,-0.15f);
glVertex2f(-0.63f,-0.15f);
glVertex2f(-0.63f,-0.18f);
glVertex2f(-0.6f,-0.18f);
glVertex2f(-0.6f,-0.25f);
glVertex2f(-0.63f,-0.25f);
glVertex2f(-0.63f,-0.28f);
glVertex2f(-0.6f,-0.28f);
glVertex2f(-0.6f,-0.35f);
glVertex2f(-0.63f,-0.35f);
glVertex2f(-0.63f,-0.38f);
glVertex2f(-0.6f,-0.38f);
glEnd();
glPushMatrix();
glTranslatef(-0.95,-0.59,0);
glBegin(GL_POLYGON);
for(int i=0;i<200;i++)
{
glColor3ub(30,78,95); //---------bam pasher dim building
float pi=3.1416/2;
float A=(i*2*pi)/200;
float r=0.4;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glBegin(GL_POLYGON);
for(int i=0;i<200;i++)
{
glColor3ub(141,225,255); //---------bam pasher dim building
float pi=3.1416/4;
float A=(i*2*pi)/200;
float r=0.4;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glPopMatrix();
glVertex2f(-1.0f,-0.55f);
glVertex2f(-0.95f,-0.55f);
glVertex2f(-0.95f,-0.5f);
glVertex2f(-1.0f,-0.5f);
glEnd();
glPushMatrix();
glTranslatef(0.95,-0.59,0);
glBegin(GL_POLYGON);
for(int i=0;i<200;i++)
{
glColor3ub(90,101,102); //---------bam pasher dim building
float pi=3.1416/2;
float A=(i*2*pi)/200;
float r=0.4;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glBegin(GL_POLYGON);
for(int i=0;i<200;i++)
{
glColor3ub(172,184,186); //---------bam pasher dim building
float pi=3.1416/4;
float A=(i*2*pi)/200;
float r=0.4;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glPopMatrix();
glVertex2f(1.0f,-0.55f);
glVertex2f(0.95f,-0.55f);
glVertex2f(0.95f,-0.5f);
glVertex2f(1.0f,-0.5f);
glColor3ub(98, 183, 196);//-------dim building er pasher glass
glVertex2f(0.8f,-0.55f);
glVertex2f(0.65f,-0.55f);
glVertex2f(0.65f,-0.5f);
glVertex2f(0.8f,-0.5f);
glEnd();
glVertex2f(-0.5f,0.2f);
glVertex2f(-0.07f,0.2f);
glVertex2f(-0.07f,0.15f);
glVertex2f(-0.5f,0.15f);
glVertex2f(-0.5f,0.1f);
glVertex2f(-0.07f,0.1f);
glVertex2f(-0.07f,0.05);
glVertex2f(-0.5f,0.05f);
glVertex2f(-0.5f,0.0f);
glVertex2f(-0.07f,0.0f);
glVertex2f(-0.07f,-0.05);
glVertex2f(-0.5f,-0.05f);
glVertex2f(-0.5f,-0.1f);
glVertex2f(-0.07f,-0.1f);
glVertex2f(-0.07f,-0.15);
glVertex2f(-0.5f,-0.15f);
glVertex2f(-0.5f,-0.2f);
glVertex2f(-0.07f,-0.2f);
glVertex2f(-0.07f,-0.25);
glVertex2f(-0.5f,-0.25f);
glVertex2f(-0.5f,-0.3f);
glVertex2f(-0.07f,-0.3f);
glVertex2f(-0.07f,-0.35);
glVertex2f(-0.5f,-0.35f);
glVertex2f(-0.5f,-0.4f);
glVertex2f(-0.07f,-0.4f);
glVertex2f(-0.07f,-0.45);
glVertex2f(-0.5f,-0.45f);
glVertex2f(-0.5f,-0.5f);
glVertex2f(-0.07f,-0.5f);
glVertex2f(-0.07f,-0.55);
glVertex2f(-0.5f,-0.55f);
glEnd();
glPushMatrix();
glTranslatef(0.8,0.8,0);
glBegin(GL_POLYGON);
for(int i=0;i<200;i++)
{
glColor3ub(250,242,8); //----------pasher dim er matha
float pi=3.1416;
float A=(i*2*pi)/200;
float r=0.12;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glPopMatrix();
glPushMatrix();
glTranslatef(0.105,0.51,0);
glBegin(GL_POLYGON);
for(int i=0;i<200;i++)
{
glColor3ub(0,128,166); //----------pasher dim er matha
float pi=3.1416;
float A=(i*2*pi)/200;
float r=0.21;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glBegin(GL_POLYGON);
for(int i=0;i<200;i++)
{
glColor3ub(148,234,255); //----------vitor er colour
float pi=3.1416/2;
float A=(i*2*pi)/200;
float r=0.17;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glPopMatrix();
glBegin(GL_QUADS);
glColor3ub(252,252,252); //---matha
glVertex2f(-0.15f,0.4f);
glVertex2f(0.36f,0.4f);
glVertex2f(0.36f,0.33f);
glVertex2f(-0.15f,0.33f);
glEnd();
glBegin(GL_LINES);
glVertex2f(0.0f,0.5f);
glVertex2f(0.07f,0.68f);
glVertex2f(0.2f,0.5f);
glVertex2f(0.13f,0.68f);
glEnd();
glBegin(GL_QUADS);
glColor3ub(181,237,255); //--------lights
glVertex2f(-0.15f,0.39f);
glVertex2f(-0.1f,0.39f);
glVertex2f(-0.1f,0.34f);
glVertex2f(-0.15f,0.34f);
glVertex2f(-0.05f,0.39f);
glVertex2f(-0.0f,0.39f);
glVertex2f(-0.0f,0.34f);
glVertex2f(-0.05f,0.34f);
glVertex2f(0.05f,0.39f);
glVertex2f(0.1f,0.39f);
glVertex2f(0.1f,0.34f);
glVertex2f(0.05f,0.34f);
glVertex2f(0.15f,0.39f);
glVertex2f(0.2f,0.39f);
glVertex2f(0.2f,0.34f);
glVertex2f(0.15f,0.34f);
glVertex2f(0.25f,0.39f);
glVertex2f(0.3f,0.39f);
glVertex2f(0.3f,0.34f);
glVertex2f(0.25f,0.34f);
glVertex2f(0.35f,0.39f);
glVertex2f(0.36f,0.39f);
glVertex2f(0.36f,0.34f);
glVertex2f(0.35f,0.34f);
glVertex2f(-0.0f,0.28f);
glVertex2f(-0.05f,0.28f);
glVertex2f(-0.05f,0.2f);
glVertex2f(-0.0f,0.2f);
glVertex2f(0.21f,0.28f);
glVertex2f(0.26f,0.28f);
glVertex2f(0.26f,0.2f);
glVertex2f(0.21f,0.2f);
glVertex2f(-0.0f,0.18f);
glVertex2f(-0.05f,0.18f);
glVertex2f(-0.05f,0.1f);
glVertex2f(-0.0f,0.1f);
glVertex2f(0.21f,0.18f);
glVertex2f(0.26f,0.18f);
glVertex2f(0.26f,0.1f);
glVertex2f(0.21f,0.1f);
glVertex2f(-0.0f,0.08f);
glVertex2f(-0.05f,0.08f);
glVertex2f(-0.05f,0.0f);
glVertex2f(-0.0f,0.0f);
glVertex2f(0.21f,0.08f);
glVertex2f(0.26f,0.08f);
glVertex2f(0.26f,0.0f);
glVertex2f(0.21f,0.0f);
glVertex2f(-0.0f,-0.02f);
glVertex2f(-0.05f,-0.02f);
glVertex2f(-0.05f,-0.1f);
glVertex2f(-0.0f,-0.1f);
glVertex2f(0.21f,-0.02f);
glVertex2f(0.26f,-0.02f);
glVertex2f(0.26f,-0.1f);
glVertex2f(0.21f,-0.1f);
glVertex2f(-0.0f,-0.12f);
glVertex2f(-0.05f,-0.12f);
glVertex2f(-0.05f,-0.2f);
glVertex2f(-0.0f,-0.2f);
glVertex2f(0.21f,-0.12f);
glVertex2f(0.26f,-0.12f);
glVertex2f(0.26f,-0.2f);
glVertex2f(0.21f,-0.2f);
glVertex2f(-0.0f,-0.22f);
glVertex2f(-0.05f,-0.22f);
glVertex2f(-0.05f,-0.3f);
glVertex2f(-0.0f,-0.3f);
glVertex2f(0.21f,-0.22f);
glVertex2f(0.26f,-0.22f);
glVertex2f(0.26f,-0.3f);
glVertex2f(0.21f,-0.3f);
glEnd();
glBegin(GL_QUADS);
glColor3ub(195,236,255); // janla
glVertex2f(0.48f,0.25f);
glVertex2f(0.52f,0.25f);
glVertex2f(0.52f,0.15f);
glVertex2f(0.48f,0.15f);
glColor3ub(161,237,255); //----janla
glVertex2f(0.53f,0.25f);
glVertex2f(0.56f,0.25f);
glVertex2f(0.56f,0.15f);
glVertex2f(0.53f,0.15f);
glVertex2f(0.43f,0.14f);
glVertex2f(0.47f,0.14f);
glVertex2f(0.47f,0.04f);
glVertex2f(0.43f,0.04f);
glVertex2f(0.48f,0.14f);
glVertex2f(0.52f,0.14f);
glVertex2f(0.52f,0.04f);
glVertex2f(0.48f,0.04f);
glColor3ub(161,237,255);
glVertex2f(0.53f,0.14f);
glVertex2f(0.56f,0.14f);
glVertex2f(0.56f,0.04f);
glVertex2f(0.53f,0.04f);
glColor3ub(195,236,255);
glVertex2f(0.43f,0.03f);
glVertex2f(0.47f,0.03f);
glVertex2f(0.47f,-0.07f);
glVertex2f(0.43f,-0.07f);
glColor3ub(161,237,255);
glVertex2f(0.48f,0.03f);
glVertex2f(0.52f,0.03f);
glVertex2f(0.52f,-0.07f);
glVertex2f(0.48f,-0.07f);
glColor3ub(161,237,255);
glVertex2f(0.53f,0.03f);
glVertex2f(0.56f,0.03f);
glVertex2f(0.56f,-0.07f);
glVertex2f(0.53f,-0.07f);
glVertex2f(0.43f,-0.08f);
glVertex2f(0.47f,-0.08f);
glVertex2f(0.47f,-0.18f);
glVertex2f(0.43f,-0.18f);
glVertex2f(0.48f,-0.08f);
glVertex2f(0.52f,-0.08f);
glVertex2f(0.52f,-0.18f);
glVertex2f(0.48f,-0.18f);
glColor3ub(195,236,255);
glVertex2f(0.53f,-0.08f);
glVertex2f(0.56f,-0.08f);
glVertex2f(0.56f,-0.18f);
glVertex2f(0.53f,-0.18f);
glVertex2f(0.43f,-0.19f);
glVertex2f(0.47f,-0.19f);
glVertex2f(0.47f,-0.29f);
glVertex2f(0.43f,-0.29f);
glColor3ub(161,237,255);
glVertex2f(0.48f,-0.19f);
glVertex2f(0.52f,-0.19f);
glVertex2f(0.52f,-0.29f);
glVertex2f(0.48f,-0.29f);
glColor3ub(161,237,255);
glVertex2f(0.53f,-0.19f);
glVertex2f(0.56f,-0.19f);
glVertex2f(0.56f,-0.29f);
glVertex2f(0.53f,-0.29f);
glVertex2f(0.43f,-0.3f);
glVertex2f(0.47f,-0.3f);
glVertex2f(0.47f,-0.4f);
glVertex2f(0.43f,-0.4f);
glColor3ub(195,236,255);
glVertex2f(0.48f,-0.3f);
glVertex2f(0.52f,-0.3f);
glVertex2f(0.52f,-0.4f);
glVertex2f(0.48f,-0.4f);
glVertex2f(0.53f,-0.3f);
glVertex2f(0.56f,-0.3f);
glVertex2f(0.56f,-0.4f);
glVertex2f(0.53f,-0.4f);
glVertex2f(0.43f,-0.41f);
glVertex2f(0.47f,-0.41f);
glVertex2f(0.47f,-0.51f);
glVertex2f(0.43f,-0.51f);
glColor3ub(161,237,255);
glVertex2f(0.48f,-0.41f);
glVertex2f(0.52f,-0.41f);
glVertex2f(0.52f,-0.51f);
glVertex2f(0.48f,-0.51f);
glColor3ub(195,236,255);
glVertex2f(0.53f,-0.41f);
glVertex2f(0.56f,-0.41f);
glVertex2f(0.56f,-0.51f);
glVertex2f(0.53f,-0.51f);
glEnd();
void Cloud() {
glPushMatrix();
glTranslatef(-0.7,1.1,0);
glScalef(0.4,0.4,1);
glColor3ub(0,0,0);//...........................cloud
glPushMatrix();
glTranslatef(0.75,-0.5,0);
glScalef(0.08,0.08,1);
glPopMatrix();
glPushMatrix();
glTranslatef(0.75,-0.5,0);
glBegin(GL_POLYGON);
for(int i=0;i<400;i++)
{
glColor3ub(253,253,243);
float pi=3.1416/2;
float A=(i*2*pi)/200;
float r=0.17;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glPopMatrix();
glPushMatrix();
glTranslatef(0.85,-0.65,0);
glBegin(GL_POLYGON);
for(int i=0;i<400;i++)
{
glColor3ub(253,253,243);
float pi=3.1416/2;
float A=(i*2*pi)/200;
float r=0.17;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glPopMatrix();
glPushMatrix();
glTranslatef(0.8,-0.71,0);
glBegin(GL_POLYGON);
for(int i=0;i<200;i++)
{
glColor3ub(253,253,243); //------ cloud er vitor colour
float pi=3.1416/2;
float A=(i*2*pi)/200;
float r=0.17;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glPopMatrix();
glPushMatrix();
glTranslatef(0.55,-0.55,0);
glBegin(GL_POLYGON);
for(int i=0;i<400;i++)
{
glColor3ub(253,253,243); //------ vitor colour
float pi=3.1416/2;
float A=(i*2*pi)/200;
float r=0.17;
float x = r * cos(A);
float y = r * sin(A);
glVertex2f(x,y);
}
glEnd();
glPopMatrix();
glPointSize(1);
glBegin(GL_POINTS);
glColor3ub(255,255,0);
glVertex2f(0.53f,-0.51f);
glVertex2f(0.63f,-0.515f);
glVertex2f(0.73f,-0.52f);
glVertex2f(0.83f,-0.52f);
glVertex2f(0.93f,-0.515f);
glVertex2f(1.03f,-0.51f);
glEnd();
glPopMatrix();
glPopMatrix();
glPushMatrix();
glPopMatrix();
glPointSize(1);
glBegin(GL_POINTS);
glColor3ub(70,130,180);
glVertex2f(0.53f,-0.51f);
glVertex2f(0.63f,-0.515f);
glVertex2f(0.73f,-0.52f);
glVertex2f(0.83f,-0.52f);
glVertex2f(0.93f,-0.515f);
glVertex2f(1.03f,-0.51f);
glEnd();
void display() {
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Set background color to black and
opaque
glClear(GL_COLOR_BUFFER_BIT); // Clear the color buffer
(background)102, 163, 255
glLoadIdentity(); //Reset the drawing perspective
glMatrixMode(GL_MODELVIEW);
glColor3ub(88,193,219);//..........sky
glBegin(GL_QUADS);
glVertex2f(-1.0f,1.0f);
glVertex2f(-1.0f,-1.0f);
glVertex2f(1.0f,-1.0f);
glVertex2f(1.0f,1.0f);
glEnd();
glColor3ub(0,0,0);
glLineWidth(8);
glBegin(GL_LINES);
glVertex2f(-1.0f,-0.6f);
glVertex2f(1.0f,-0.6f);
glEnd();
Cloud();
Building();
River();
Boat();
glutMainLoop();
}