Rabu, 19 Oktober 2016

TUGAS 2 GRAFKOM 1

Nama Kelompok:

-Vendes Petrik Maela.S           (5A414986)
-Riske Dwi Cahyati                 (59414499) 
-Alby Septian Widodo             (50412568)
-Nyoman Arya Prakamyajati   (5B415801)
3IA12 



OBJEK 3D (BALOK) PADA OPENGL 

Pada pembuatan tugas kali ini kami menggunakan dev c++ dengan ditambah library dari freeglut yang bisa kita download dari internet.
Berikut ini tahap pembuatan objek tersebut.


pada kode diatas menjelaskan tentang pendeklarasikan variable global bertipe char, GLfloat, dan int
dan mengeset nilai variable global.
pada kode diatas itu mendeklarasikan fungsi initGL bertipe void. baris pertama pada fungsi itu menjelaskan tentang pewarnaan background.kemudian baris kedua tentang set backgroud sampai kedalaman paling jauh. kemudian tes set tipe kedalaman.membuat menghaluskan bayangan.


mengeset kordinat pada titik-titik kordinat untuk membangun balok tersebut pada warna - warna yang diberi keterangan pada komen program
 ini juga mengeset titik - titik koordinat tersebut sesuai warnanya
di fungsi ini menjelaskan titik koordinat pada warna pink

fungsi diatas mengeset kecepatan waktu berputar


Berikut sintaks keseluruhannya :

#include <GL/glut.h>
char title[] = "3D Shapes with animation";
GLfloat angleCube = 0.0f;  
int refreshMills = 15;     

/* Initialize OpenGL Graphics */
void initGL() {
    glClearColor(255.0f, 255.0f, 255.0f, 1.0f);
   glClearDepth(1.0f);                  
   glEnable(GL_DEPTH_TEST);  
   glDepthFunc(GL_LEQUAL);   
   glShadeModel(GL_SMOOTH);  
   glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}

void display() {
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   glMatrixMode(GL_MODELVIEW);    

   glLoadIdentity();                
   glTranslatef(1.5f, 0.0f, -7.0f); 
   glRotatef(angleCube, 1.0f, 1.0f, 1.0f); 

   glBegin(GL_QUADS);             
      glColor3f(0.0f, 1.0f, 0.0f);     // Hijau
      glVertex3f( 2.0f, 1.0f, -1.0f);
      glVertex3f(-2.0f, 1.0f, -1.0f);
      glVertex3f(-2.0f, 1.0f,  1.0f);
      glVertex3f( 2.0f, 1.0f,  1.0f);

      // Bottom face (y = -1.0f)
      glColor3f(1.0f, 0.5f, 0.0f);     // Orange
      glVertex3f( 2.0f, -1.0f,  1.0f);
      glVertex3f(-2.0f, -1.0f,  1.0f);
      glVertex3f(-2.0f, -1.0f, -1.0f);
      glVertex3f( 2.0f, -1.0f, -1.0f);

      // Front face  (z = 1.0f)
      glColor3f(1.0f, 0.0f, 0.0f);     // merah
      glVertex3f( 2.0f,  1.0f, 1.0f);
      glVertex3f(-2.0f,  1.0f, 1.0f);
      glVertex3f(-2.0f, -1.0f, 1.0f);
      glVertex3f( 2.0f, -1.0f, 1.0f);

      // Back face (z = -1.0f)
      glColor3f(1.0f, 1.0f, 0.0f);     // kuning
      glVertex3f( 2.0f, -1.0f, -1.0f);
      glVertex3f(-2.0f, -1.0f, -1.0f);
      glVertex3f(-2.0f,  1.0f, -1.0f);
      glVertex3f( 2.0f,  1.0f, -1.0f);

      // Left face (x = -1.0f)
      glColor3f(0.0f, 0.0f, 1.0f);     // Biru
      glVertex3f(-2.0f,  1.0f,  1.0f);
      glVertex3f(-2.0f,  1.0f, -1.0f);
      glVertex3f(-2.0f, -1.0f, -1.0f);
      glVertex3f(-2.0f, -1.0f,  1.0f);

      // Right face (x = 1.0f)
      glColor3f(1.0f, 0.0f, 1.0f);     // Pink
      glVertex3f(2.0f, -1.0f, -1.0f);
      glVertex3f(2.0f, -1.0f, 1.0f);
      glVertex3f(2.0f, 1.0f, 1.0f);
      glVertex3f(2.0f, 1.0f, -1.0f);
   glEnd(); 

   glLoadIdentity();                 
   glTranslatef(-1.5f, 0.0f, -6.0f); 

   glutSwapBuffers(); 
   angleCube -= 1.05f;
}

/* Called back when timer expired [NEW] */
void timer(int value) {
   glutPostRedisplay();     
   glutTimerFunc(refreshMills, timer, 0);}

void reshape(GLsizei width, GLsizei height) { 
   if (height == 0) height = 1;               
   GLfloat aspect = (GLfloat)width / (GLfloat)height;

   glViewport(0, 0, width, height);

   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();           
   gluPerspective(45.0f, aspect, 0.1f, 100.0f);
}
int main(int argc, char** argv) {

   glutInit(&argc, argv);           
   glutInitDisplayMode(GLUT_DOUBLE);
   glutInitWindowSize(640, 480);  
   glutInitWindowPosition(50, 50);
   glutCreateWindow(title);       
   glutDisplayFunc(display);      
   glutReshapeFunc(reshape);      
   initGL();                      
   glutTimerFunc(0, timer, 0);    
   glutMainLoop();                
   return 0;
}

Berikut ini output dari program tersebut:


  Sekian penulisan kali ini kurang lebihnya kami minta maaf, semoga penulisan kali ini bermanfaat bagi pembaca sekalian. TerimaKasih

Rabu, 12 Oktober 2016

TUGAS 1 GRAFIK KOMPUTER (MEMBUAT BENTUK DASAR)

Nama Anggota Kelompok:

-Vendes Petrik Maela.S           (5A414986)
-Riske Dwi Cahyati                 (59414499)
-Alby Septian Widodo             (50412568)
-Nyoman Arya Prakamyajati   (5B415801)

Kelas : 3IA12


       Dalam pembuatan tugas ini kami menggunakan Software Dev C++ dengan tambahan menginstal library Glut. Pada tugas ini kami membuat bentuk bentuk dasar dari "Garis(Horizontal,Vertikal,Bebas,Diagonal),Segitiga(Fill area dan outline),Segiempat(Fill area, dan outline),Poligon(Fill area dan outline).
       Untuk bentuk bangunan Segitiga,Segiempat,Poligon akan dijabarkan perpembagian Fillarea atau Outline saja. Pada postingan kali ini kami juga akan menampilkan syntaks yang digunakan untuk membuat bentuk bentuk dasar tersebut. Berikut ini adalah pembahasannya.

  1. Garis
A. Horizontal

Sintaks:

glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
                                glClear (GL_COLOR_BUFFER_BIT);
                                glPushMatrix();          
                                glClearColor(1,1,0,0); 
                                glColor3f(1,1,0);
                                glBegin(GL_LINES);              
                                glColor3f(128.0f, 0.0f, 55.0f); glVertex2f(-0.4f, 0.0f);  
                                glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(0.4f, 0.0f);    
                                glEnd();            
                                glPopMatrix();
                                SwapBuffers (hDC);
                                Sleep (1);




B. Vertikal

Sintaks:

glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
                                glClear (GL_COLOR_BUFFER_BIT);
                                glPushMatrix();          
                                glClearColor(1,1,0,0); 
                                glColor3f(1,1,0);
                                glBegin(GL_LINES);              
                                glColor3f(128.0f, 0.0f, 55.0f); glVertex2f(0.0f, 0.6f);  
                                glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(0.0f, -0.6f);    
                                glEnd();            
                                glPopMatrix();
                                SwapBuffers (hDC);
                                Sleep (1);





C. Diagonal
Sintaks:

glClear (GL_COLOR_BUFFER_BIT);
            glPushMatrix ();
            glBegin (GL_LINES);
            glColor3f (128.0f, 00.0f, 255.0f);   glVertex2f (0.0f, 0.0f);
            glVertex2f (0.8f, -0.5f);
            glVertex2f (0.87f, -0.5f);
            glEnd ();
            glPopMatrix ();
            SwapBuffers (hDC);
            theta += 1.0f;
            Sleep (1);





D. Bebas
Sintaks:

glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
                                glClear (GL_COLOR_BUFFER_BIT);
                                glPushMatrix();          
                                glClearColor(1,1,0,0); 
                                glColor3f(1,1,0);
                                glBegin(GL_LINES);              
                                glColor3f(128.0f, 0.0f, 55.0f); glVertex2f(0.0f, 0.6f);  
                                glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(0.0f, -0.6f);
                                glBegin(GL_LINES);
                                glColor3f(128.0f, 0.0f, 55.0f); glVertex2f(0.6f, 0.0f);  
                                glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(-0.6f, 0.0f);   
                                glEnd();            
                                glPopMatrix();
                                SwapBuffers (hDC);
                                Sleep (1);



      2. Fill Area (Segitiga, Segiempat,Poligon)

Fillarea adalah kondisi dimana bentuk bangunan akan memiliki warna didalamnya. Disini kami akan menggunakan warna background berwarna putih yang mana ditandai dalam sintaks "
glClearColor (255.0f, 255.0f, 255.0f, 0.0f);"

a. Segitiga

Sintaks:


glClearColor (255.0f, 255.0f, 255.0f, 0.0f);
            glClear (GL_COLOR_BUFFER_BIT);
            glPushMatrix ();  
            glBegin (GL_TRIANGLES);
            glColor3f (128.0f, 0.0f, 255.0f);   glVertex2f (0.0f, 1.0f);
            glColor3f (200.0f, 0.0f, 0.0f);   glVertex2f (0.87f, -0.5f);
            glColor3f (0.0f, 0.0f, 255.0f);   glVertex2f (-0.87f, -0.5f);
            glEnd ();
            glPopMatrix ();
            SwapBuffers (hDC);

            theta += 1.0f;
            Sleep (1);
 



b. Segiempat

Sintaks:


glClearColor (255.0f, 255.0f, 255.0f, 0.0f);
            glClear (GL_COLOR_BUFFER_BIT);
            glPushMatrix ();
            glBegin (GL_POLYGON);
            glColor3f (128.0f, 0.0f, 255.0f);   glVertex2f (-0.5f, -0.5f);
            glColor3f (200.0f, 0.0f, 00.0f);   glVertex2f (-0.5f, 0.5f);
            glColor3f (0.0f, 00.0f, 255.0f);   glVertex2f (0.5f, 0.5f);
            glColor3f (210.0f, 0.0f, 32.0f);   glVertex2f (0.5f, -0.5f);
            glEnd ();
            glPopMatrix ();
            SwapBuffers (hDC);
            theta += 1.0f;
            Sleep (1);
 




c.Poligon


 Sintaks:

glClearColor (255.0f, 255.0f, 255.0f, 0.0f);
            glClear (GL_COLOR_BUFFER_BIT);
            glPushMatrix ();           
            glBegin (GL_POLYGON);
            glColor3f (128.0f, 0.0f, 255.0f); glVertex2f (0.0f, 0.5f);
            glColor3f (200.0f, 0.0f, 0.0f); glVertex2f (-0.5f, 0.1f);
            glColor3f (0.0f, 0.0f, 255.0f); glVertex2f (-0.3f, -0.5f);
            glColor3f (210.0f, 0.0f, 32.0f); glVertex2f (0.3f, -0.5f);
            glColor3f (300.0f, 0.0f, 0.0f); glVertex2f (0.5f, 0.1f);
            glEnd ();
            glPopMatrix ();
            SwapBuffers (hDC);
            theta += 1.0f;
            Sleep (1);
 




       3. Outline (Segitiga, Segiempat,Poligon)

Outline adalah kondisi dimana pada bentuk yang ditampilkan hanya terdapat warna pada garis(warna dalam bangunan akan sama dengan warna background). Untuk membuat ini semua kami menggunakan sintaks "Line loop" yang mana bangun ruang ini nantinya hanyalah berupa sekumpulan garis yang menyatu dan akirnya membentuk suatu bangun.

a. Segitiga


Sintaks:

glClearColor (0.0f, 255.0f, 0.0f, 0.0f);
            glClear (GL_COLOR_BUFFER_BIT);
            glPushMatrix ();      
            glBegin (GL_LINE_LOOP);
            glColor3f (0.0f, 0.0f, 0.0f);  
             glVertex2f (0.0f, 1.0f);
            glVertex2f (0.97f, -0.5f);
            glVertex2f (-0.97f, -0.5f);
            glEnd ();
            glPopMatrix ();
            SwapBuffers (hDC);
            theta += 1.0f;
            Sleep (1);




b. Segiempat


Sintaks:

glClearColor (0.0f, 255.0f, 0.0f, 0.0f);
            glClear (GL_COLOR_BUFFER_BIT);
            glPushMatrix ();         
            glBegin (GL_LINE_LOOP);
            glColor3f (0.0f, 0.0f, 0.0f);  
             glVertex2f (-0.5f, -0.5f);
            glVertex2f (-0.5f, 0.5f);
            glVertex2f (0.5f, 0.5f);
            glVertex2f (0.5f, -0.5f);
            glEnd ();
            glPopMatrix ();
            SwapBuffers (hDC);
            theta += 1.0f;
            Sleep (1);
 


c. Poligon
Sintaks:

glClearColor (0.0f, 255.0f, 0.0f, 0.0f);
            glClear (GL_COLOR_BUFFER_BIT);
            glPushMatrix ();
            glBegin (GL_LINE_LOOP);
            glColor3f (0.0f, 0.0f, 0.0f);  
             glVertex2f (0.0f, 0.5f);
            glVertex2f (-0.5f, 0.1f);
            glVertex2f (-0.3f, -0.5f);
            glVertex2f (0.3f, -0.5f);
            glVertex2f (0.5f, 0.1f);
             glEnd ();
            glPopMatrix ();
            SwapBuffers (hDC);
            theta += 1.0f;
            Sleep (1);


        Sekian postingan dari kelompok kami tentang pembentukan beberapa bentuk sederhana menggunakan OpenGL. Kurang lebihnya postingan ini kami minta maaf yang sebesar-besarnya. Semoga Postingan ini bermanfaat untuk semua yang membaca. Terima Kasih