Opengl Computer Graphics Projects on Solar Energy Solar Power

by Zaki Ghassan
0 comments
Opengl Computer Graphics Projects on Solar Energy Solar Power


void draw(){

if(day){

glClearColor(0.9,0.9,0.9,0.0);

}else{

glClearColor(0.3,0.3,0.3,0.0);

}

glPushMatrix();

glRotatef(angle,1,0,0);

glTranslatef(-10,20,-155);

glScaled(1,1,0.6);

if(day){

glColor3f(1,1,0);

}else{

glColor3f(1,1,1);

}

glutSolidSphere(5,100,100);

glPopMatrix();

glPushMatrix();

glTranslatef(0,-10,5);

glScaled(500,10,1000);

glColor3f(0.8,0.7,0.7);

glutSolidCube(1);

glPopMatrix();

drawHouse(-3,0,-55);

drawHouse(-4,0,-35);

drawHouse(-5,0,-15);

drawHouse(-10,0,-15);

//Solar Panels

for(int i=-1;i<3;i++)

{

for(int j=5;j>-2;j–)

drawSolarPanel(i*2,1,j);

}

//draw power station.

stroke_output(0.8,1.8,”Power Station”);

// transformer

glPushMatrix();

glTranslatef(15,5,-100);

//glScaled(0,2,0.2);

glColor3f(1,0.3,0.3);

glutSolidCube(15);

glPopMatrix();

//Transformer Power levels

// y axis from 5 to 18 and show growth in one second delay

if(day){

if(grow<=15000){

grow++;

angle+=0.002;

}

}

else{

if(grow>=0){

grow–;

angle-=0.002;

}

}

if(grow>1000){

glPushMatrix();

glTranslatef(14.8,-2,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>2000){

glPushMatrix();

glTranslatef(14.8,-1,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>3000){

glPushMatrix();

glTranslatef(14.8,0,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>4000){

glPushMatrix();

glTranslatef(14.8,1,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>5000){

glPushMatrix();

glTranslatef(14.8,2,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>6000){

glPushMatrix();

glTranslatef(14.8,3,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>7000){

glPushMatrix();

glTranslatef(14.8,4,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>8000){

glPushMatrix();

glTranslatef(14.8,5,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>9000){

glPushMatrix();

glTranslatef(14.8,6,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>10000){

glPushMatrix();

glTranslatef(14.8,7,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>11000){

glPushMatrix();

glTranslatef(14.8,8,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>12000){

glPushMatrix();

glTranslatef(14.8,9,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>13000){

glPushMatrix();

glTranslatef(14.8,10,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>14000){

glPushMatrix();

glTranslatef(14.8,11,-99.8);

glScaled(1,0.05,1);

glColor3f(1,1,0);

glutSolidCube(15);

glPopMatrix();

}

if(grow>15000){

}

}

void doDisplay()

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glLoadIdentity();

glTranslatef(0.0f,0.0f,-13.0f);

// Write your Own Code Here

if(help1){

help();

}

else

{

draw();

}

GLfloat mat_ambient[]={0.0f,1.0f,2.0f,1.0f};

GLfloat mat_diffuse[]={0.0f,1.5f,.5f,1.0f};

GLfloat mat_specular[]={5.0f,1.0f,1.0f,1.0f};

GLfloat mat_shininess[]={100.0f};

glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);

glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);

glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);

glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);

/*GLfloat lightIntensity[]={3.7f,0.7f,0.7f,1.0f}; Orange

GLfloat light_position[]={2.0f,5.0f,3.0f,1.0f};*/

/*light source properties*/

//if(day){

GLfloat lightIntensity[]={1.7f,1.7f,1.7f,1.0f};

GLfloat light_position[]={2.0f,0.0f,0.0f,0.0f};

glLightfv(GL_LIGHT0,GL_POSITION,light_position);

GLfloat light_position2[]={0.0f,0.0f,8.0f,0.0f};

glLightfv(GL_LIGHT0,GL_POSITION,light_position2);

GLfloat light_position3[]={0.0f,5.0f,15.0f,0.0f};

glLightfv(GL_LIGHT0,GL_POSITION,light_position3);

glLightfv(GL_LIGHT0,GL_DIFFUSE,lightIntensity);

/*}else{

GLfloat lightIntensity[]={0.7f,0.7f,0.7f,0.5f};

GLfloat light_position[]={2.0f,0.0f,0.0f,0.0f};

glLightfv(GL_LIGHT0,GL_POSITION,light_position);

GLfloat light_position2[]={0.0f,0.0f,8.0f,0.0f};

glLightfv(GL_LIGHT0,GL_POSITION,light_position2);

GLfloat light_position3[]={0.0f,2.0f,2.0f,0.0f};

glLightfv(GL_LIGHT0,GL_POSITION,light_position3);

glLightfv(GL_LIGHT0,GL_DIFFUSE,lightIntensity);

}*/

glFlush();

glutSwapBuffers();

}

void mykey(unsigned char key,int x,int y)

{

if(key==’q’||key==’Q’)

{

exit(0);

}

if(key==’h’||key==’H’)

{

help1=!help1;

glutPostRedisplay();

}

if(key==’s’ || key==’S’){

if(day){

day=false;

}else{

day=true;

}

glutPostRedisplay();

glutIdleFunc(doDisplay);

}

}

int main(int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

glutInitWindowSize(640,480);

glutInitWindowPosition(0,0);

glutCreateWindow(“Solar power”);

glutDisplayFunc(doDisplay);

glEnable(GL_LIGHTING);

glEnable(GL_LIGHT0);

glShadeModel(GL_SMOOTH);

glEnable(GL_DEPTH_TEST);

glEnable(GL_NORMALIZE);

glutKeyboardFunc(mykey);

doInit();

glutMainLoop();

return 0;

}


You may also like

Leave a Comment