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.
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).
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;
}
ijin sharing blog OpenGL ane gan...ada 100 artikel lebh tentang openGL lengkap dengan source code, semoga bermanfaat
BalasHapushttp://heriadyblog.blogspot.co.id/2016/01/contoh-program-opengl_24.html
How to Get Free Spins at a NJ Casino - MJH Hub
BalasHapusThe 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