Membuat Objek 2 Dimensi Grafika Komputer
Membuat Objek 2 Dimensi Grafika Komputer
Assalamualaikum Warahmatullahi Wabarakatuh....
Kali ini mimin mau share ilmu tentang Pemrograman Grafik, sebelum ke pembahasan mimin mau menampilkan hasil mimin belajar pemrograman grafik.
Grafika Komputer
Pengertian grafika komputerGrafika komputer adalah bagian dari ilmu komputer yang berkaitan dengan pembuatan dan manipulasi gambar (visual) secara digital. Bentuk sederhana dari grafika komputer adalah grafika komputer 2D yang kemudian berkembang menjadi grafika komputer 3D, pemrosesan citra (image processing), dan pengenalan pola (pattern recognition). Grafika komputer sering dikenal juga dengan istilah visualisasi data.Istilah grafika komputer ditemukan sekitar tahun 1960 oleh William Fetter.
Pengertian Open GL
open gl : suatu spefikasi grafik yang low level yang menyediakan fungsi untuk mempermudah pekerjaan/ untuk keperluan-keperluan pemrograman grafis (Graphics programming /gp) termasuk grafik primitive ( titik,garis,dan lingkaran).
Sejarah Open GL
OpenGL dikembangkan oleh Silicon Graphics (SGI) pada tahun 1990-an pendahulu openGL adalah IRIS GL dari silicon graphics yang pada awalnya berupa GL 2D, yang berevolusi menjadi API program 3D untuk workstation canggih milik perusahaan tersebut
#GLUT (GL utility Toolkit)
GLUT merupakan pengembangan dari OpenGL yang didalam untuk aplikasi dengan level kecil hingga menengah danmenggunakan call back function untuk menambahkan interaksi dari user
GLUT dikembangkan oleh mark kilgard , yaitu penulis OpenGL programming for the x windows system dan the cg tutorial : The Definitive Guide To Programmable Real Time Graphics ketika dia masih bekerja di silicon graphics
Library OpenGL-GLUT
Library dasar dari OpenGL adalah GLUT dengan fasillitas yang dikembangkan.
Terdiri dari 3 file yaitu :
a. glut.h (c:\Program Files\Microsoft Visual Studio\VC98\Include\GL)
b.glut32.lib (c:\Program Files\Microsoft Visual Studio\VC98\lib)
c.glut32.dll (c:\Windows\System32)
Langsung saja guys kita ke program, mimin membuat program ini dengan menggabungkan beberapa garis sehingga membentuk suatu objek dengan penerapan primitif drawing:
#include <GL/glut.h>
#include <math.h>
const double PI = 3.141592653589793;
int i;
void lingkaran(int jari2, int jumlah_titik, int x_tengah, int y_tengah){
glBegin(GL_POLYGON);
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+jari2*cos(sudut);
float y=y_tengah+jari2*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void CetakSegitiga(int x1, int y1, int x2, int y2, int x3, int y3){
glPointSize(6); //ukuran titik
glBegin(GL_POLYGON);
glVertex2i(x1,y1);
glVertex2i(x2,y2);
glVertex2i(x3,y3);
glEnd();
}
void CetakKotak (int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4){
glPointSize(6); //ukuran titik
glBegin(GL_POLYGON);
glVertex2i(x1,y1);
glVertex2i(x2,y2);
glVertex2i(x3,y3);
glVertex2i(x4,y4);
glEnd();
}
void CetakGaris (int x1, int y1, int x2, int y2){
glPointSize(4); //ukuran garis
glBegin(GL_LINES);
glVertex2i(x1,y1);
glVertex2i(x2,y2);
glEnd();
}
//draw area
void userdraw() {
static int tick=0;
glColor3f(0,0,1);
CetakSegitiga(50,200,200,350,350,200);
CetakSegitiga(300,200,450,350,600,200);
glColor3f(0,0.5,0);
CetakSegitiga(450,260,520,350,590,260);
CetakSegitiga(460,300,520,370,580,300);
CetakSegitiga(440,220,520,320,600,220);
glColor3f(0,0,0);
CetakSegitiga(200,0,325,200,425,0);
glColor3f(0,0,0);
CetakKotak(500,50,500,220,540,220,540,50);
glColor3f(0,1,0);
CetakKotak(0,0,0,200,325,200,200,0);
CetakKotak(425,0,325,200,500,200,500,0);
CetakKotak(500,0,500,50,800,50,800,0);
CetakKotak(540,50,540,200,800,200,800,50);
glColor3f(1,1,0);
lingkaran (40,150,325,325);
glColor3f(1,1,1);
lingkaran (20,50,100,425);
lingkaran (20,50,125,440);
lingkaran (20,50,160,440);
lingkaran (20,50,180,425);
lingkaran (20,50,125,420);
lingkaran (20,50,160,420);
glColor3f(1,1,1);
lingkaran (20,50,500,425);
lingkaran (20,50,525,440);
lingkaran (20,50,560,440);
lingkaran (20,50,580,425);
lingkaran (20,50,525,420);
lingkaran (20,50,560,420);
glColor3f(1,1,1);
CetakGaris(325,180,325,150);
CetakGaris(325,120,325,90);
CetakGaris(325,60,325,30);
CetakGaris(200,0,325,200);
CetakGaris(325,200,425,0);
}
void display(void){
//clear screen
glClear(GL_COLOR_BUFFER_BIT);
userdraw(); //jalankan userdraw()
glutSwapBuffers();
}
int main(int argc, char **argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(100,100); //posisi windownya di (100,100)
glutInitWindowSize(640,480); //set ukuran window jadi 640x480
glutCreateWindow("Belajar OpenGL"); //set judul app
glClearColor(0,1,1,0); //set warna background(r,g,b,a)(range 0-1)
gluOrtho2D(0.,640.,0.,480.); //set area menggambar
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
}
ini hasilnya guyss
Terimakasih sudah mengunjungi blog mimin:)
Komentar
Posting Komentar