Thursday 27 July 2017

Mini Projek OpenGL "membuat ikan di aquarium " dengan Codeblock dan pemrograman C++


PENGUMUMAN

  " Projek ini Dibuat dengan Benar sudah berjalan secara semestinya. apabila ada ERROR di code silahkan pelajari dimana letak errornya. jangan hanya mau disuapi saja. mengcopi ini = harus mempelajari  sourcodenaya sendiri. 

Jangan Lupa Ucapkan Terimakasih di kolom komentar. 

dan untuk Glut download sementara saya tutup, jika ingin mendownload silahkan komentar dibawah "tujuan kalian belajar OPENGL beserta email kalian". nanti saya bagikan lewat email kalian yang ada dikolom komentar. (komentar tidak akan muncul jika belum disetujui dan belum dikirim openGLnya ke email kalian)"

Projek mini OpenGL yaitu membuat ikan di aquarium ini ini dilengkapi beberapa menu diantaranya adalah untuk play, memberi makan ikan, memberimakan ikan dengan makanan beracun, dan mempercepat laju ikan. dalam projek ini hanya akan ada interaksi dengan mouse saja. semua aktivitas seperti memberimakan inikan dilakukan dengan cara klik kiri. adapun hasil dari projek ini bisa anda lihat dalam tayangan video berikut ini :


Namun untuk mencoba projek diatas anda harus mempunyai beberapa hal berikut ini untuk di seting dikomputer anda. diantaranya yaitu :
  1. Open GL download disini :  View openGL
  2. CodeBlock setting dengan openGL caranya lihat disini: view
  3. buka codeblock dan buat projek baru caranya dapat dilihat disini : view
  4. copy semua sourcode yang tersedia di blog ini.
silahkan copy contoh program dibawah ini ke projek yang anda buat. adapun sourcode yang akan anda coba adalah sebagai berikut.



#include<stdio.h>
#include<stdlib.h>
#include<GL/glut.h>
#include<math.h>
#include<windows.h>
#include<gl/glu.h>
int flag=0,ch=0,ch1=0;
float a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,s=0.7,x=0,y=0;
void create_menu(void);
void menu(int);
void disp1(void);
void disp2(void);
void disp3(void);
void disp4(void);

void delay(int time)
{
float i,j,k;

for(i=0;i<time;i=i+0.001);
for(j=0;j<time;j=j+0.001);
for(k=0;k<time;k=k+0.001);
}


void fish1()
{
 glColor3f(1.0,0.0,0.0);//red fish
  glBegin(GL_POLYGON);
   glVertex2f(0.7+a,0.05);

   glVertex2f(0.75+a,0.1);

   glVertex2f(0.85+a,0.05);
   glVertex2f(0.75+a,0.0);
  glEnd();


  glBegin(GL_TRIANGLES);
  glColor3f(1.0,0.0,0.0);
    glVertex2f(0.83+a,0.05);
   glColor3f(1.0,1.0,0.0);
   glVertex2f(0.9+a,0.09);
   glVertex2f(0.9+a,0.01);
  glEnd();

  glBegin(GL_TRIANGLES);
  glColor3f(1.0,1.0,0.0);
    glVertex2f(0.75+a,0.095);
glColor3f(1.0,0.0,0.0);
glVertex2f(0.79+a,0.125);
glVertex2f(0.77+a,0.07);
  glEnd();

glBegin(GL_TRIANGLES);
glColor3f(1.0,1.0,0.0);
    glVertex2f(0.75+a,0.007);
glColor3f(1.0,0.0,0.0);
glVertex2f(0.795+a,-0.035);
glVertex2f(0.77+a,0.02);
  glEnd();


  glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(0.73+a,0.065);
  glEnd();

}

void fish11()
{

glColor3f(1.0,0.0,0.0);//red fish
  glBegin(GL_POLYGON);
   glVertex2f(-0.7,0.05);
   glVertex2f(-0.75,0.1);
   glVertex2f(-0.85,0.05);
   glVertex2f(-0.75,0.0);
  glEnd();


  glBegin(GL_TRIANGLES);
   glVertex2f(-0.83,0.05);
   glVertex2f(-0.9,0.09);
   glVertex2f(-0.9,0.01);
  glEnd();

  glBegin(GL_TRIANGLES);
    glVertex2f(-0.75,0.095);
glVertex2f(-0.79,0.125);
glVertex2f(-0.77,0.07);
  glEnd();

glBegin(GL_TRIANGLES);
    glVertex2f(-0.75,0.007);
glVertex2f(-0.795,-0.035);
glVertex2f(-0.77,0.02);
  glEnd();


  glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(-0.73,0.065);
  glEnd();
}



void fish2()
{
 glColor3f(1.0,1.0,0.0);//yellow fish
  glBegin(GL_POLYGON);
   glVertex2f(-0.7-b,-0.05);
   glVertex2f(-0.75-b,-0.1);
   glVertex2f(-0.85-b,-0.05);
   glVertex2f(-0.75-b,0.0);
  glEnd();

  glBegin(GL_TRIANGLES);
  glColor3f(0.8,0.5,0.0);
  glVertex2f(-0.83-b,-0.05);
   glVertex2f(-0.9-b,-0.09);
   glVertex2f(-0.9-b,-0.01);
  glEnd();

  glBegin(GL_TRIANGLES);
  glColor3f(0.8,0.5,0.0);
  glVertex2f(-0.75-b,-0.095);
glVertex2f(-0.79-b,-0.125);
glVertex2f(-0.77-b,-0.07);
  glEnd();

glBegin(GL_TRIANGLES);
glColor3f(0.8,0.5,0.0);
    glVertex2f(-0.75-b,-0.007);
glVertex2f(-0.795-b,0.035);
glVertex2f(-0.77-b,-0.02);
  glEnd();

 glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(-0.73-b,-0.035);
  glEnd();
}


void fish21()
{
 glColor3f(1.0,1.0,0.0);//yellow fish
  glBegin(GL_POLYGON);
   glVertex2f(-0.7+y,-0.05);
   glVertex2f(-0.75+y,-0.1);
   glVertex2f(-0.85+y,-0.05);
   glVertex2f(-0.75+y,0.0);
  glEnd();

  glBegin(GL_TRIANGLES);
  glColor3f(0.8,0.5,0.0);
  glVertex2f(-0.83+y,-0.05);
   glVertex2f(-0.9+y,-0.09);
   glVertex2f(-0.9+y,-0.01);
  glEnd();

  glBegin(GL_TRIANGLES);
  glColor3f(0.8,0.5,0.0);
  glVertex2f(-0.75+y,-0.095);
glVertex2f(-0.79+y,-0.125);
glVertex2f(-0.77+y,-0.07);
  glEnd();

glBegin(GL_TRIANGLES);
glColor3f(0.8,0.5,0.0);
    glVertex2f(-0.75+y,-0.007);
glVertex2f(-0.795+y,0.035);
glVertex2f(-0.77+y,-0.02);
  glEnd();

 glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(-0.73+y,-0.035);
  glEnd();
}


void fish22()
{
 glColor3f(1.0,1.0,0.0);//yellow fish
  glBegin(GL_POLYGON);
   glVertex2f(0.7,-0.05);
   glVertex2f(0.75,-0.1);
   glVertex2f(0.85,-0.05);
   glVertex2f(0.75,0.0);
  glEnd();

  glBegin(GL_TRIANGLES);
glVertex2f(0.83,-0.05);
glColor3f(1.8,0.5,0.0);
glVertex2f(0.9,-0.09);
   glVertex2f(0.9,-0.01);
  glEnd();

  glBegin(GL_TRIANGLES);
  glColor3f(1.0,1.0,0.0);
  glVertex2f(0.79,-0.125);
  glVertex2f(0.77,-0.07);

  glVertex2f(0.75,-0.095);

  glEnd();

glBegin(GL_TRIANGLES);
glVertex2f(0.795,0.035);
glVertex2f(0.77,-0.02);

    glVertex2f(0.75,-0.007);

  glEnd();

 glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(0.73,-0.035);
  glEnd();
}


void fish3()
{
 glColor3f(0.0,1.0,0.0);//green fish
  glBegin(GL_POLYGON);
   glVertex2f(0.8,0.15);
   glVertex2f(0.85,0.2);
   glVertex2f(0.95,0.15);
   glVertex2f(0.85,0.10);
  glEnd();

  glBegin(GL_TRIANGLES);
   glVertex2f(0.93,0.15);
   glVertex2f(0.98,0.19);
   glVertex2f(0.98,0.11);
  glEnd();


  glBegin(GL_TRIANGLES);
    glVertex2f(0.855,0.2);
glVertex2f(0.925,0.25);
glVertex2f(0.87,0.15);
  glEnd();

 glBegin(GL_TRIANGLES);
    glVertex2f(0.857,0.1);
glVertex2f(0.925,0.05);
glVertex2f(0.87,0.15);
  glEnd();

  glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(0.83,0.165);
  glEnd();

}

void fish333()
{
glColor3f(0.0,1.0,0.0);//green fish
  glBegin(GL_POLYGON);
   glVertex2f(-0.8+x,0.15);
   glVertex2f(-0.85+x,0.2);
   glVertex2f(-0.95+x,0.15);
   glVertex2f(-0.85+x,0.10);
  glEnd();

  glBegin(GL_TRIANGLES);
   glVertex2f(-0.93+x,0.15);
   glVertex2f(-0.98+x,0.19);
   glVertex2f(-0.98+x,0.11);
  glEnd();


  glBegin(GL_TRIANGLES);
    glVertex2f(-0.855+x,0.2);
glVertex2f(-0.925+x,0.25);
glVertex2f(-0.87+x,0.15);
  glEnd();

 glBegin(GL_TRIANGLES);
    glVertex2f(-0.857+x,0.1);
glVertex2f(-0.925+x,0.05);
glVertex2f(-0.87+x,0.15);
  glEnd();

  glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(-0.83+x,0.165);
  glEnd();


}



void fish33()
{
 glColor3f(0.0,1.0,0.0);//green fish
  glBegin(GL_POLYGON);
   glVertex2f(-0.8,0.15);
   glVertex2f(-0.85,0.2);
   glVertex2f(-0.95,0.15);
   glVertex2f(-0.85,0.10);
  glEnd();

  glBegin(GL_TRIANGLES);
   glVertex2f(-0.93,0.15);
   glVertex2f(-0.98,0.19);
   glVertex2f(-0.98,0.11);
  glEnd();


  glBegin(GL_TRIANGLES);
    glVertex2f(-0.855,0.2);
glVertex2f(-0.925,0.25);
glVertex2f(-0.87,0.15);
  glEnd();

 glBegin(GL_TRIANGLES);
    glVertex2f(-0.857,0.1);
glVertex2f(-0.925,0.05);
glVertex2f(-0.87,0.15);
  glEnd();

  glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(-0.83,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 fish44()
{
glColor3f(0.5,0.6,0.0);// green1 fish
  glBegin(GL_POLYGON);
   glVertex2f(0.7,-0.15);
   glVertex2f(0.75,-0.2);
   glVertex2f(0.85,-0.15);
   glVertex2f(0.75,-0.1);
  glEnd();

  glBegin(GL_TRIANGLES);
   glVertex2f(0.83,-0.15);
   glVertex2f(0.9,-0.19);
   glVertex2f(0.9,-0.11);
  glEnd();


  glBegin(GL_TRIANGLES);
    glVertex2f(0.755,-0.2);
glVertex2f(0.795,-0.25);
glVertex2f(0.775,-0.15);
  glEnd();

 glBegin(GL_TRIANGLES);
    glVertex2f(0.755,-0.1);
glVertex2f(0.795,-0.05);
glVertex2f(0.775,-0.15);
  glEnd();

  glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(0.73,-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 fish55()
{
 glColor3f(0.0,0.0,1.0);//blue fish
  glBegin(GL_POLYGON);
   glVertex2f(0.7,-0.25);
   glVertex2f(0.75,-0.3);
   glVertex2f(0.775,-0.3);
   glVertex2f(0.85,-0.25);
   glVertex2f(0.775,-0.2);
   glVertex2f(0.75,-0.2);
  glEnd();

  glBegin(GL_TRIANGLES);
   glVertex2f(0.83,-0.25);
   glVertex2f(0.9,-0.29);
   glVertex2f(0.9,-0.21);
  glEnd();

  glBegin(GL_TRIANGLES);
    glVertex2f(0.775,-0.2);
glVertex2f(0.79,-0.125);
glVertex2f(0.75,-0.2);
  glEnd();

 glBegin(GL_TRIANGLES);
    glVertex2f(0.75,-0.3);
glVertex2f(0.795,-0.35);
glVertex2f(0.775,-0.3);
  glEnd();

  glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(0.73,-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 fish555()
{if(q==0.75){
glColor3f(0.0,0.0,1.0);//blue fish
  glBegin(GL_POLYGON);
   glVertex2f(0.2,0.55);
   glVertex2f(0.25,0.6);
   glVertex2f(0.275,0.6);
   glVertex2f(0.35,0.55);
   glVertex2f(0.275,0.5);
   glVertex2f(0.25,0.5);
  glEnd();

  glBegin(GL_TRIANGLES);
   glVertex2f(0.23,0.55);
   glVertex2f(0.35,0.59);
   glVertex2f(0.35,0.51);
  glEnd();

  glBegin(GL_TRIANGLES);
    glVertex2f(0.275,0.6);
glVertex2f(0.29,0.7);
glVertex2f(0.25,0.6);
  glEnd();

  glBegin(GL_TRIANGLES);
    glVertex2f(0.275,0.5);
glVertex2f(0.29,0.4);
glVertex2f(0.25,0.5);
  glEnd();

  glColor3f(0.0,0.0,0.0);
  glPointSize(4.0);
  glBegin(GL_POINTS);
  glVertex2f(0.23,0.565);
  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);
   glEnd();


   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 pebbles()
{
glColor3f(0.5,0.35,0.05);
glBegin(GL_POLYGON);
glVertex2f(0.9,-0.9);
glVertex2f(0.9125,-0.9);
glVertex2f(0.925,-0.8875);
glVertex2f(0.925,-0.875);
glVertex2f(0.9125,-0.8625);
glVertex2f(0.9,-0.8625);
glVertex2f(0.8875,-0.8875);
glVertex2f(0.8875,-0.875);
glEnd();

    glBegin(GL_POLYGON);
glVertex2f(0,-0.95);
glVertex2f(0.0125,-0.95);
glVertex2f(0.025,-0.9375);
glVertex2f(0.025,-0.925);
glVertex2f(0.0125,-0.9125);
glVertex2f(0,-0.9125);
glVertex2f(-0.0125,-0.9375);
glVertex2f(-0.0125,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(0.0125,-0.975);
glVertex2f(0.025,-0.975);
glVertex2f(0.0375,-0.9625);
glVertex2f(0.0375,-0.95);
glVertex2f(0.025,-0.9375);
glVertex2f(0.0125,-0.9375);
glVertex2f(0,-0.9625);
glVertex2f(0,-0.95);
glEnd();

glBegin(GL_POLYGON);
glVertex2f(0.025,-0.95);
glVertex2f(0.0375,-0.95);
glVertex2f(0.05,-0.9375);
glVertex2f(0.05,-0.925);
glVertex2f(0.0375,-0.9125);
glVertex2f(0.025,-0.9125);
glVertex2f(0.0125,-0.9375);
glVertex2f(0.0125,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(0.65,-0.95);
glVertex2f(0.6625,-0.95);
glVertex2f(0.675,-0.9375);
glVertex2f(0.675,-0.925);
glVertex2f(0.6625,-0.9125);
glVertex2f(0.65,-0.9125);
glVertex2f(0.6375,-0.9375);
glVertex2f(0.6375,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(0.675,-0.95);
glVertex2f(0.6875,-0.95);
glVertex2f(0.7,-0.9375);
glVertex2f(0.7,-0.925);
glVertex2f(0.6875,-0.9125);
glVertex2f(0.675,-0.9125);
glVertex2f(0.6625,-0.9375);
glVertex2f(0.6625,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(0.6625,-0.985);
glVertex2f(0.675,-0.985);
glVertex2f(0.6875,-0.9725);
glVertex2f(0.6875,-0.96);
glVertex2f(0.675,-0.9475);
glVertex2f(0.6625,-0.9475);
glVertex2f(0.65,-0.9525);
glVertex2f(0.65,-0.96);
glEnd();



glBegin(GL_POLYGON);
glVertex2f(0.6875,-0.985);
glVertex2f(0.7,-0.985);
glVertex2f(0.7125,-0.9725);
glVertex2f(0.7125,-0.96);
glVertex2f(0.7,-0.9475);
glVertex2f(0.6875,-0.9475);
glVertex2f(0.675,-0.9475);
glVertex2f(0.675,-0.96);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(0.6375,-0.985);
glVertex2f(0.65,-0.985);
glVertex2f(0.6625,-0.9725);
glVertex2f(0.6625,-0.96);
glVertex2f(0.65,-0.9475);
glVertex2f(0.6375,-0.9475);
glVertex2f(0.625,-0.9475);
glVertex2f(0.625,-0.96);
glEnd();



glBegin(GL_POLYGON);
glVertex2f(0.25,-0.95);
glVertex2f(0.2625,-0.95);
glVertex2f(0.275,-0.9375);
glVertex2f(0.275,-0.925);
glVertex2f(0.2625,-0.9125);
glVertex2f(0.25,-0.9125);
glVertex2f(0.2375,-0.9375);
glVertex2f(0.2375,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(0.275,-0.95);
glVertex2f(0.2875,-0.95);
glVertex2f(0.3,-0.9375);
glVertex2f(0.3,-0.925);
glVertex2f(0.2875,-0.9125);
glVertex2f(0.275,-0.9125);
glVertex2f(0.2625,-0.9375);
glVertex2f(0.2625,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(0.2625,-0.985);
glVertex2f(0.275,-0.985);
glVertex2f(0.2875,-0.9725);
glVertex2f(0.2875,-0.96);
glVertex2f(0.275,-0.9475);
glVertex2f(0.2625,-0.9475);
glVertex2f(0.25,-0.9525);
glVertex2f(0.25,-0.96);
glEnd();

    glBegin(GL_POLYGON);
glVertex2f(0.2875,-0.985);
glVertex2f(0.3,-0.985);
glVertex2f(0.3125,-0.9725);
glVertex2f(0.3125,-0.96);
glVertex2f(0.3,-0.9475);
glVertex2f(0.2825,-0.9475);
glVertex2f(0.275,-0.9525);
glVertex2f(0.275,-0.96);
glEnd();



glBegin(GL_POLYGON);
glVertex2f(-0.35,-0.95);
glVertex2f(-0.3625,-0.95);
glVertex2f(-0.375,-0.9375);
glVertex2f(-0.375,-0.925);
glVertex2f(-0.3625,-0.9125);
glVertex2f(-0.35,-0.9125);
glVertex2f(-0.3375,-0.9375);
glVertex2f(-0.3375,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(-0.375,-0.95);
glVertex2f(-0.3875,-0.95);
glVertex2f(-0.4,-0.9375);
glVertex2f(-0.4,-0.925);
glVertex2f(-0.3875,-0.9125);
glVertex2f(-0.375,-0.9125);
glVertex2f(-0.3625,-0.9375);
glVertex2f(-0.3625,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(-0.3625,-0.985);
glVertex2f(-0.375,-0.985);
glVertex2f(-0.3875,-0.9725);
glVertex2f(-0.3875,-0.96);
glVertex2f(-0.375,-0.9475);
glVertex2f(-0.3625,-0.9475);
glVertex2f(-0.35,-0.9525);
glVertex2f(-0.35,-0.96);
glEnd();

glBegin(GL_POLYGON);
glVertex2f(-0.3875,-0.985);
glVertex2f(-0.4,-0.985);
glVertex2f(-0.4125,-0.9725);
glVertex2f(-0.4125,-0.96);
glVertex2f(-0.4,-0.9475);
glVertex2f(-0.3825,-0.9475);
glVertex2f(-0.375,-0.9525);
glVertex2f(-0.375,-0.96);
glEnd();

glBegin(GL_POLYGON);
glVertex2f(-0.3375,-0.985);
glVertex2f(-0.35,-0.985);
glVertex2f(-0.3625,-0.9725);
glVertex2f(-0.3625,-0.96);
glVertex2f(-0.35,-0.9475);
glVertex2f(-0.3375,-0.9475);
glVertex2f(-0.325,-0.9525);
glVertex2f(-0.325,-0.96);
glEnd();

    glBegin(GL_POLYGON);
glVertex2f(-0.65,-0.95);
glVertex2f(-0.6625,-0.95);
glVertex2f(-0.675,-0.9375);
glVertex2f(-0.675,-0.925);
glVertex2f(-0.6625,-0.9125);
glVertex2f(-0.65,-0.9125);
glVertex2f(-0.6375,-0.9375);
glVertex2f(-0.6375,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(-0.675,-0.95);
glVertex2f(-0.6875,-0.95);
glVertex2f(-0.7,-0.9375);
glVertex2f(-0.7,-0.925);
glVertex2f(-0.6875,-0.9125);
glVertex2f(-0.675,-0.9125);
glVertex2f(-0.6625,-0.9375);
glVertex2f(-0.6625,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(-0.6625,-0.985);
glVertex2f(-0.675,-0.985);
glVertex2f(-0.6875,-0.9725);
glVertex2f(-0.6875,-0.96);
glVertex2f(-0.675,-0.9475);
glVertex2f(-0.6625,-0.9475);
glVertex2f(-0.65,-0.9525);
glVertex2f(-0.65,-0.96);
glEnd();

glBegin(GL_POLYGON);
glVertex2f(-0.9,-0.9);
glVertex2f(-0.9125,-0.9);
glVertex2f(-0.925,-0.8875);
glVertex2f(-0.925,-0.875);
glVertex2f(-0.9125,-0.8625);
glVertex2f(-0.9,-0.8625);
glVertex2f(-0.8875,-0.8875);
glVertex2f(-0.8875,-0.875);
glEnd();


    glBegin(GL_POLYGON);
glVertex2f(0.9,-0.95);
glVertex2f(0.9125,-0.95);
glVertex2f(0.925,-0.9375);
glVertex2f(0.925,-0.925);
glVertex2f(0.9125,-0.9125);
glVertex2f(0.9,-0.9125);
glVertex2f(0.8875,-0.9375);
glVertex2f(0.8875,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(0.925,-0.95);
glVertex2f(0.9375,-0.95);
glVertex2f(0.95,-0.9375);
glVertex2f(0.95,-0.925);
glVertex2f(0.9375,-0.9125);
glVertex2f(0.925,-0.9125);
glVertex2f(0.9125,-0.9375);
glVertex2f(0.9125,-0.925);
glEnd();


    glBegin(GL_POLYGON);
glVertex2f(-0.9,-0.95);
glVertex2f(-0.9125,-0.95);
glVertex2f(-0.925,-0.9375);
glVertex2f(-0.925,-0.925);
glVertex2f(-0.9125,-0.9125);
glVertex2f(-0.9,-0.9125);
glVertex2f(-0.8875,-0.9375);
glVertex2f(-0.8875,-0.925);
glEnd();


glBegin(GL_POLYGON);
glVertex2f(-0.925,-0.95);
glVertex2f(-0.9375,-0.95);
glVertex2f(-0.95,-0.9375);
glVertex2f(-0.95,-0.925);
glVertex2f(-0.9375,-0.9125);
glVertex2f(-0.925,-0.9125);
glVertex2f(-0.9125,-0.9375);
glVertex2f(-0.9125,-0.925);
glEnd();
}


void food()
{
glColor3f(0.5,0.9,0.3);
glPointSize(8);
glBegin(GL_POINTS);
glVertex2f(-0.65,0.5);
glEnd();

}


void food_mul()
{
glColor3f(1.0,0.0,1.0);
glPointSize(8);
glBegin(GL_POINTS);
glVertex2f(0.235,0.4);
glEnd();
}


void poisonfood()
{
glColor3f(1.0,0.0,0.0);
glPointSize(8);
glBegin(GL_POINTS);
glVertex2f(0.48,0.66);
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();
 glFlush();
}*/

void draw_pixel(GLint cx,GLint cy)
{
glColor3f(1.0,0.0,0.0);
glBegin(GL_POINTS);
glVertex2i(cx,cy);
glEnd();
}

void plotpixels(GLint h,GLint k,GLint x,GLint y)
{
draw_pixel(x+h,y+k);
draw_pixel(-x+h,y+k);
draw_pixel(x+h,-y+k);
draw_pixel(-x+h,-y+k);
draw_pixel(y+h,x+k);
draw_pixel(-y+h,x+k);
draw_pixel(y+h,-x+k);
draw_pixel(-y+h,-x+k);

}

void circle_draw(GLint h,GLint k,GLint r)
{
GLint d=1-r,x=0,y=r;
while(y>x)
{
plotpixels(h,k,x,y);
if(d<0)
d+=2*x+3;
else
{
d+=2*(x-y)+5;
--y;
}
++x;
}
plotpixels(h,k,x,y);
}


void myinit()
{
 glClearColor(0.4,1.0,1.0,0.0);
 glColor3f(1.0,1.0,0.0);
 //gluOrtho2D(0.0,499.0,0.0,499.0);
}


void idle()
{

    g+=0.00024;


h+=0.0002;


i-=0.00024;


j+=0.0002;


k+=0.00009;


l+=0.0002;


m+=0.000055;


n+=0.0002;


p+=0.00007;


q+=0.0001;


x-=0.0001;

s-=0.001;
y+=0.0002;


glutPostRedisplay();

}


void play1(){
glPushMatrix();
if(h<0.6){
glTranslatef(g,h,0);}
else
{
glTranslatef(g,1.2-h,0);
}
fish11();
 glPopMatrix();

}


void play2(){
glPushMatrix();
if(j<0.6)
{
glTranslatef(i,j,0);
}
else
{
glTranslatef(i,1.2-j,0);
}
fish22();
 glPopMatrix();
}




void display(void)
{
 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
 glColor3f(1.0,0.0,0.0);
 glPointSize(2.0);
 circle_draw(0.2,-0.1,0.5);

// sand();
 plant();
 pebbles();


 if(a>=-1.99)
a=a-0.0005;
 else
   a=0;


if(b>=-1.99)
 b=b-0.0004;
 else
  b=0;

if(c>=-1.99)
c=c-0.0003;
 else
  c=0;

if(d>=-1.99)
 d=d+0.0007;
 else
  d=0;

if(e>=-1.99)
 e=e-0.0005;
 else
  e=0;


if(f>=-1.99)
 f=f-0.0002;
 else
  f=0;

 fish1();
 fish2();
 //fish3();
 fish4();
 fish5();
 fish33();
 fish44();
 fish55();
 fish6();

 glutPostRedisplay();
 glFlush();
 glutSwapBuffers();

}

void create_menu(void)
   {
     glutCreateMenu(menu);
     glutAttachMenu(GLUT_LEFT_BUTTON);
     glutAttachMenu(GLUT_RIGHT_BUTTON);
     glutAddMenuEntry("Food", 1);
     glutAddMenuEntry("Play", 2);
     glutAddMenuEntry("Assemble", 3);
     glutAddMenuEntry("Poison Food", 4);
     glutAddMenuEntry("Exit", 5);

    }
void menu(int val)
   {


     switch (val) {
     case 1:
glutDisplayFunc(disp1);;
break;
     case 2:
   glutDisplayFunc(disp2);
break;
case 3:
glutDisplayFunc(disp3);
break;
case 4:
   glutDisplayFunc(disp4);;
break;
case 5: exit(0);




   }

}


void disp1(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glColor3f(1.0,0.0,0.0);



    glPushMatrix();
if(l<0.35)
{
food();
glTranslatef(k,l,0);
}
else
{
glTranslatef(k,0.35,0);
glColor3f(0.0,0.0,1.0);
glPointSize(8);
glBegin(GL_POINTS);
glVertex2f(-0.5,0.5);
}
fish33();
    glPopMatrix();


    glPushMatrix();
if(n<=0.8)
{
poisonfood();
glTranslatef(-m,n,0);}
else
{
glTranslatef(-m,0.8,0);
        glColor3f(0.0,0.0,1.0);
glPointSize(8);
glBegin(GL_POINTS);
glVertex2f(0.55,0.5);
}

fish44();
glPopMatrix();

glPushMatrix();
if(q<0.65)
{
food_mul();
glTranslatef(-p,q,0);
}
else
{
glTranslatef(-p,0.65,0);
glColor3f(0.0,0.0,1.0);
glPointSize(8);
glBegin(GL_POINTS);
glVertex2f(0.25,0.5);
}
fish55();
glPopMatrix();

 if(a>=-1.99)
a=a-0.0005;
 else
   a=0;


if(b>=-1.99)
 b=b-0.0004;
 else
  b=0;

if(c>=-1.99)
c=c-0.0003;
 else
  c=0;

if(d>=-1.99)
 d=d+0.0007;
 else
  d=0;

if(e>=-1.99)
 e=e-0.0005;
 else
  e=0;


if(f>=-1.99)
 f=f-0.0002;
 else
  f=0;

 fish1();
 fish2();
 //fish3();
 fish4();
 fish5();

 fish6();

 plant();
 pebbles();

  glutPostRedisplay();
 glFlush();


}




void disp2(void)
{


 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
 glColor3f(1.0,0.0,0.0);

 plant();
 pebbles();

 if(a>=-1.99)
a=a-0.0005;
 else
   a=0;


if(b>=-1.99)
 b=b-0.0004;
 else
  b=0;

if(c>=-1.99)
c=c-0.0003;
 else
  c=0;

if(d>=-1.99)
 d=d+0.0007;
 else
  d=0;

if(e>=-1.99)
 e=e-0.0005;
 else
  e=0;


if(f>=-1.99)
 f=f-0.0002;
 else
  f=0;

 fish1();
 fish2();

 fish4();
 fish5();

 fish6();
 play1();
 play2();
 glutPostRedisplay();
 glFlush();

}

void disp3(void)
{

 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
 glColor3f(1.0,0.0,0.0);

 plant();
 pebbles();


 if(a>=-1.99)
a=a-0.0005;
 else
   a=0;


if(b>=-1.99)
 b=b-0.0004;
 else
  b=0;

if(c>=-1.99)
c=c-0.0003;
 else
  c=0;

if(d>=-1.99)
 d=d+0.0007;
 else
  d=0;

if(e>=-1.99)
 e=e-0.0005;
 else
  e=0;


if(f>=-1.99)
 f=f-0.0002;
 else
  f=0;


 fish1();
 fish2();

 fish4();
 fish5();

 fish6();

 glutPostRedisplay();
 glFlush();
}

void disp4(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glColor3f(1.0,0.0,0.0);



    glPushMatrix();
if(x>-0.8)
{
glColor3f(1.0,0.0,0.0);
glPointSize(10.0);
glBegin(GL_POINTS);
glVertex2f(0.0,0.30);
glEnd();
glTranslatef(x,0.35,0);
}
else
{
glTranslatef(x,1.95-y,0.0);
glColor3f(1.0,1.0,0.0);
glPointSize(8);
glBegin(GL_POINTS);
glVertex2f(0.0,0.30);
//glEnd();
}
fish21();

    glPopMatrix();


 plant();
 pebbles();


 if(a>=-1.99)
a=a-0.0005;
 else
   a=0;


if(b>=-1.99)
 b=b-0.0004;
 else
  b=0;

if(c>=-1.99)
c=c-0.0003;
 else
  c=0;

if(d>=-1.99)
 d=d+0.0007;
 else
  d=0;

if(e>=-1.99)
 e=e-0.0005;
 else
  e=0;


if(f>=-1.99)
 f=f-0.0002;
 else
  f=0;


 fish1();
 fish2();
 fish4();
 fish5();
 fish6();

 glutPostRedisplay();
 glFlush();
}

int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
 glutInitWindowPosition(0,0);
 glutInitWindowSize(500,500);
 glutCreateWindow("fish");
 myinit();
 create_menu();
 glutIdleFunc(idle);
 glutDisplayFunc(display);
 glutMainLoop();
}



Features
dalam projek openGL kali ini anda akan mendapatkan beberapa feature diantaranya yaitu :

  • ikan : ikan akan terdapat 8 ekor ikan yang berenang dalam sebuah aquarium
  • rumput :terdapat 6 rumput dalam aquarium.
  • batu : terdapat 7 batu dalam aquarium.
Event Control
dalam event kontrol di projek kali ini adalah hanya berkaitan dengan mouse saja yaitu klik kanan.
adapun pilihan dalam klik kanan ada beberapa opsi yaitu :
  • Food : digunakan memberi makan ikan
  • play : digunakan untuk memulai animasi.
  • assemble : digunakan untuk membuat ikan.
  • poison food : digunakan untuk memberi makanan beracun.
  • exit : digunakan untuk keluar dari animasi

Adapun hasil dari Screen Shoot aplikasi yang dibuat dengan OpenGl tersebut dapat anda lihat dari gambar dibawah ini :



semoga bermanfaat dan dapat dimanfaatkan dengan sebaik-baiknya untuk mengerjakan tugas maupun untuk menganalisa codingan yang sudah ada untuk di improve sendiri. demikian saya ucapkan terimaksih.








Contoh Projek 3D lainnya.


Baca Juga Projek OpenGL dengan C++ Lainnya  dibawah ini :

 Contoh Projek 2D openGL

Baca juga Animasi 2D untuk projek openGL lainnya dibawah ini

Dasar OpenGL

Baca juga Dasar Dari OpenGL dibawah ini jika kalian ingin menekuninya.


Monday 10 July 2017

opengl tutorial - basic part 1 (drawing object)



  • glClearColor 0, 0, 0, 0 and  glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT

this is funtion for clear window
On a computer,memory for displaying images usually filled with images that come from the latest drawing commands, so it needs to be cleared with the background color before it is drawn again. The following example command is used to clean the screen with a black background andbufferwhat will be cleaned. In this case,the buffercolor will be cleared becausethe buffercolor is where the image is stored

  • glColor3f  1, 0, 0

this is func for color spesify RGB
In OpenGL object with a color to describe the object is a process that runs on its own. Before the colors changed, all objects drawn after the command will use the last color contained in the coloring scheme.For color used commands glColor3f . The following example shows the sequence of steps in the process before the object drawn color specifications. Color display is red

  • glFlush

Forcing Process Drawing Up Finish
Most modern graphics systems already using the system graphics pipeline . Where the main CPU give the issue of drawing commands and other hardware that perform transformation, clipping , shading , texturing and others. In the architecture of such processes are not performed on one computer for each computer has its own task. The main CPU does not have to wait for the process on each computer had been completed, but could give the issue a command next picture. For this OpenGL provides commands glFlush which forces the client to immediately send a packet network , although not fully. The program should be written using this command because glFlush not force the process to complete the picture but forces the image to be executed, so that secured all previously drawing commands will be executed within a certain time.


  • glVertex3f  4, 4, 0

To draw a point used an OpenGL commands are: glVertex . This function can have 2 to 4 parameters of various types of data. For example, the command glVertex below will specify a point on the x-axis position 4, 4 axis y and 0 for the z-axis. glVertex3f 4, 4, 0. Now we know how to specify a point in space in OpenGL. Furthermore, that should be added is additional information on that point, if that point the end of a line, or a vertex of a polygon or another, because the definition of the geometric of a vertex is actually not just a dot on the screen but rather a point where there intersection of two lines or curves.

  • glbegin and glend

proces start and end drawing vertex




next tutorial part 2.


                          

Tingkat keanekaragaman hayati tingkat gen

Tingkat keanekaragaman hayati tingkat gen -- Keanekaragaman hayati adalah sebuah istilah untuk menggambarkan keanekaragaman mahluk hidup di ...