Orang boleh pandai setinggi Langit, tapi selama ia tak menulis ia akan hilang di dalam masyarakat (Pramoedya Ananta Toer)

IMPLEMENTASI PRIMITIVE OBJECT 2D

Selasa, 12 Februari 2013


IMPLEMENTASI PRIMITIVE OBJECT 2D
            Primitive object 2D adalah suatu model pembuatan gambar yang mengacu kepada prespektif 2 titik. Umumnya object 2D ini merupakan suatu object yang  terdiri dari sekumpulan titik-titik yang menyambung (dihubungkan) menjadi satu dengan perantara garis lurus berupa polyline, polygon maupun kurva.
Text Box: Gambar Primitive Object
1.      Garis(Line)
Garis merupakan suatu unsur desain yang menghubungkan antara satu titik dengan titik yang lain sehingga bisa berbentuk gambar garis lengkung (curve) atau lurus (straight).
Contoh program untuk merepresentasikan model obyek segiempat 2D, pada OpenGL memiliki beberapa komponen dasar untuk merepresentasikan suatu obyek. Komponen dasar tersebut, disebut sebagai OpenGL Geometric primitives. Pada setiap object pada openGL  harus dimodelkan sebagai kombinasi dari komponen-komponen dasar tersebut. Sebagai contoh, obyek segiempat dimodelkan dengan menggunakan komponen dasar GL_POLYGON. Obyek tersebut dapat pula dimodelkan dengan komponen dasar GL_TRIANGLES atau pun GL_QUAD.

Primitive object ini selalu menghasilkan bentuk- bentuk benda simetris.Contoh dari implementasi object 2D ini adalah sebagai berikut:
·         Bentuk (Shape)
Bentuk dasar yang diciptakan dari openGL tersebut biasanya adalah kotak (rectangle), lingkaran (circle), dan segitiga (triangle). Pada desain komunikasi visual kita akan mempelajari betuk dasar dan bentuk turunan. Sementara pada kategori sifatnya, bentuk dapat dikategorikan menjadi tiga, yaitu:
·         Huruf (Character) : yaitu abjad dari A sampai Z
·         Simbol (Symbol) : biasanya yang sering kita ketahui adalah simbol alpha, betha,teta dan yang lainnya.
Pada penjelasan berikut ini akan menjabarkan beberapa primitive objek yang bisa dipergunakan didalam pembuatan suatu objek :
·         GL_POINTS
Merupakan primitif objek ini dipergunakan untuk menciptakan suatu titik.
·         GL_LINES
Merupakan primitif objek ini dipergunakan untuk menciptakan suatu garis.
·         GL_LINE_LOOP
·         GL_LINE_STRIP
·         GL_TRIANGLES
Merupakan primitif objek ini dipergunakan untuk menghubungkan tiga buah titik yang terhubung menjadi suatu segitiga dengan blok di tengahnya. Pada penggunaan primitive objek ini kita harus menggunakan minimal 3 buah vertex guna membentuk suatu objek.
·         GL_TRIANGLES_STRIP
Merupakan primitif objek ini dipergunakan untuk menghubungkan 4 buah vertex.
·          GL_TRIANGLE_FAN
Triangles fan adalah pembuatan suatu objek dengan menggunakan segitiga dimana hanya menggunakan 1 titik pusat saja. Ilustrasinya bisa dilihat pada gambar berikut ini.
·         GL_QUADS
Quad atau segempat adalah empat buah titik yang terhubung menjadi suatu segempat dengan blok di tengahnya.
·         GL_QUADS_STRIP
Pada quads strip 4 buah vertex merupakan 1 kelompok. Ilustrasinya bisa dilihat pada gambar berikut ini.

·          GL_POLYGON
Merupakan primitif objek yang mirip dengan polyline, tetapi menghasilkan kurva tertutup dengan blok warna (fill). Rendering yang dimiliki oleh GL_POLYGON  sama dengan GL_TRIANGLE_FAN
 Warna
          Untuk memberi warna pada objek, seperti titik atau garis, dapat dilakukan dengan menggunakan fungsi à glColor3f(red,green,blue); Di mana red, green, blue berada pada 0 sampai dengan 1, yang menunjukkan skala pencerahan dari masing-masing skala. Berikut ini merupakan beberapa fungsi color :glColor3f(0,0,0);//black
1.      glColor3f(0,0,1);// untuk warna blue
2.      glColor3f(0,1,0);// untuk warna green
3.      glColor3f(0,1,1)// untuk warna cyan
4.      glColor3f(1,0,0)// untuk warna red
5.      glColor3f(1,0,1)// untuk warna magenta
6.      glColor3f(1,1,0);// untuk warna yellow
7.      glColor3f(1,1,1);// untuk warna white

Contoh implementasi primitive object 2D dalam pembuatan lingkaran dan pemberian warna.
#include "stdlib.h"
#include "glut.h"
#include "math.h"

const double PI = 3.141592653589793;
int i;

void back(){
glBegin(GL_QUADS);
glColor3f(1,1,1);
  glVertex2d (-150,150);
  glVertex2d(150,150);
  glVertex2d(150,-150);
  glVertex2d (-150,-150);
glEnd();
}


void lingkaran(int radius, 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+radius*cos(sudut);
        float y=y_tengah+radius*sin(sudut);
  glVertex2f(x,y);
 }
 glEnd();
}

void Draw() {
 glClear(GL_COLOR_BUFFER_BIT);
 back();
 glColor3f(1.0, 0.0, 0.0);
 lingkaran(30,70,0,0);
 glColor3f(0.0, 1.0, 0.0);
 lingkaran(20,70,40,40);
 glColor3f(0.0, 0.0, 1.0);
 lingkaran(40,70,-60,-60);
 glFlush();
}


int main(int argc, char **argv) {
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
 glutInitWindowSize(300, 300);
 glutInitWindowPosition(200, 200);
 glutCreateWindow("Lingkaran");
 gluOrtho2D(-150., 150., -150., 150.);
 glutDisplayFunc(Draw);
 glutMainLoop();
 return 0;
}



Share this article :

2 komentar:

  1. ijin sharing blog OpenGL ane gan...ada 100 artikel lebh tentang openGL lengkap dengan source code, semoga bermanfaat

    http://heriadyblog.blogspot.co.id/2016/01/contoh-program-opengl_24.html

    BalasHapus
  2. How to Get Free Spins at a NJ Casino - MJH Hub
    The best part about using free 이천 출장마사지 spins is that the no deposit free 통영 출장샵 spins 김천 출장마사지 at your casino is 아산 출장안마 not a risk to your bankroll. A no deposit bonus 부천 출장샵 is a reward to have

    BalasHapus

 
Support : Copyright © 2011. Indrie's Site - All Rights Reserved
Template Created by Creating Website Inspired by Sportapolis Shape5.com
Proudly powered by Blogger