Senin, 03 November 2014

Membuat garis Diagonal, Vertikal, & Horizontal Dengan tambahan tools opengl pada C++

Apa si C++ & OpenGL itu, C++  aplikasi tingkat menengah dari perkembangan program C dan memiliki kompiler yang tidak sama. OpenGL yang yaitu aplikasi interface untuk mendefinisikan komputer grafis 2D dan 3D , dan aplikasi ini untuk memberikan hasil  koleksi perintah khusus pada sistem operasi.

#include <windows.h>
#include <iostream.h>
#include <gl/gl.h>
#include <stdio.h>
#include <gl\glu.h>
#include <gl\glaux.h>
#include <gl\glut.h>

Include dalam C++ ini salah satu pengarah processor Directive yang tersedia pada C++,  sedangkan Include ini sebagai kompiler untuk menyisipkan file untuk mendeklarsikan , seperti contoh diatas ada yang sering kita dengar di C++ yaitu #include <iostream.h> dan #include<stdio.h> ,  .h ini sebagai header file yang di deklarasikan.

void sumbu(){
glPushMatrix();
glBegin(GL_LINES);                      
glVertex3f(0,0,0.0);
glVertex3f(0,1,0.0);
glVertex3f(0,0,0.0);
glVertex3f(1,0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glPopMatrix();
glEnd();
glFlush();
}

·         Disini ada Fungsi main ( ) ,dimana fungsi ini sebagai fungsi eksekusi awal dan akhir pada program C++.

void Diagonal()
{
float a,b,c,d;
cout<<"Masukkan Xo :";
cin>>a;cout<<"Masukkan Yo :";
cin>>b;cout<<"Masukkan X1 :";
cin>>c;cout<<"Masukkan Y1 :";
cin>>d;
glPushMatrix();
glBegin(GL_LINES);
glVertex3f(a+0.5,b+0.5,0.0);
glVertex3f(c+0.5,d+0.5,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glPopMatrix();
glEnd();
glFlush();
}

·         Di sini hampir banyak tanda semilicon atau dapat di katakan titik koma ( ; ) , fungsi ini sebagai  mengakhiri sebuah pernyataan dan pernyataan tersebut harus di akhiri dengan titik koma.
·         Cout di sini berfungsi sebagai perintah keluaran pada C++.
·         { dan } tanda ini sebagai punctuator yang awal brok program nya hingga akhir dari programnya. 

Ø  Untuk garis diagonal semua dari  kordinatnya berubah karena yang ingin kita jalankan  adalah garis miring.

void Horizontal()
{

float e,f,g;
cout<<"Masukkan X Awal:";cin>>e;
cout<<"Masukkan X Akhir:";cin>>f;
cout<<"Masukkan Y tetap:";cin>>g;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINES);
glVertex3f(e+0.1,g+0.1,0.0);
glVertex3f(f+0.1,g+0.1,0.0);
glEnd();
glFlush();
}

·         Cout masukan awal itu maksudnya untuk memasukan dimana X awal ke c , X akhir ke f, dan X tetap ke g.

Ø  Untuk garis horizontal dimana kordinat Y nya tetap, dan kordinat X berubah sesuai dengan aturan Bresenham  nya  maka akan terbuatlah gambar garis miring.

void Vertikal()
{

float x,y,z;
cout<<"Masukkan Yawal :";cin>>x;
cout<<"Masukkan Yakhir:";cin>>y;
cout<<"Masukkan Xtetap:";cin>>z;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin
(GL_LINES);
glVertex3f(z+0.5,x+0.5,0.0);
glVertex3f(z+0.5,y+0.5,0.0);
glEnd();
glFlush();
}

·         Cout masukan awal itu maksudnya untuk memasukan dimana Y awal ke x , Y akhir ke y, dan X tetap ke z.

Ø  Untuk garis vertical kordinat X nya tetap, dan dimana Y nya yang berubah sesuai dengan titik awal sampai titik Y yang akhir. Sehingga akan menampilkan garis lurus.

void initialize()
{
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}
int main(int iArgc,char** cppArgv) {
menu:
int j;
cout<<"-----MENU----\n";
cout<<"1.Garis vertikal\n";
cout<<"2.Garis Horizontal\n";
cout<<"3.Garis Diagonal\n";
cout<<"4.Exit\n";
cout<<"------------------\n";
cout<<"Masukkan pilihan anda:";cin>>j;
cout<<"\n";
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(600,200);
glutCreateWindow("OpenGL with C++");
initialize();
while (j<=4){
switch(j){
case 1:
glutDisplayFunc(Vertikal);
glutMainLoop();
return 0;

case 2:
glutDisplayFunc(Horizontal);
glutMainLoop();
return 0;

case 3:
glutDisplayFunc(Diagonal);
glutMainLoop();
return 0;
default:
cout<<"anda salah memasukkan";
goto menu;
}
}}

Hasil output nya :


Kita pilih vertikal yaitu menu 1 , Jika kita Y awal  nya 0 , Y akhir nya 1 dan X nya tetap akan menghasilkan output nya :


Lalu jika kita memilih di menu 2 yaitu horizontal akan menampilkan seperi output ini :




Lalu kita ke Menu Diagonal pilih 3 :




Maka akan menghasilkan Output diagonal nya :


Ø  Sesuai dari penjelasan di atas bagaimana garis akan terbentuk sesuai titik kordinatnya.

Tugas Graf Komp & Pengolahan Citra : https://www.dropbox.com/s/2kd4jmy580mnp03/Tugas%20Graf%20Komp%20%26%20Pengelola%20Citra.rar?dl=0

Tidak ada komentar:

Posting Komentar