Bab 2
Grafik 2 Dimensi
Tujuan:
Mempelajari struktur dasar obyek grafik 2-D
Membangun obyek grafik 2-D
Mengenal macam-macam obyek 2-D yang menarik dan berguna, seperti pembuatan
grafik untuk keperluan visualisasi dan analisa
Materi:
Obyek grafik 2-D adalah sekumpulan titik-titik 2-D yang dihubungkan dengan garis
lurus baik berupa polyline, polygon atau kurva. Obyek grafik 2-D didefinisikan sebagai
sekumpulan titik 2-D yang secara komputasi dinyatakan sebagai array 1-D, atau linked-
list sesuai dengan struktur data yang digunakan dalam menyatakan kumpulan titik 2D
ini.
Mendefinisikan struktur dari obyek grafik 2-D sebagai array dari titik 2-D (Object2D_t)
Titik 2D mempunyai dua nilai yaitu x dan y yang menyatakan jarak horizontal dan
vertikal dari titik pusat sumbu koordinat (0,0).
Y
P(x,y)
(0,0)x
X
Grafika Komputer 14
Modul Ajar Program D4
Pengertian
typedef struct {
float x,y;
} point2D_t;
pecahan (float)
typedef struct {
int x,y;
} point2D_t;
(integer)
Dengan menggunakan struktur data titik di atas, maka fungsi untuk menggambar titik
(drawDot) dapat dituliskan dengan:
Seperti telah dibahas sebelumnya, warna yang digunakan terdiri dari 3 elemen warna dasar
yaitu RGB (red, green dan blue). Sehingga struktur data untuk menyatakan warna ini
adalah sebagai berikut:
} color_t;
Warna terdiri dari 3 elemen warna yaitu red (r), green (g) dan blue (b) yang nilainya antara
0 dan 1
Definisi obyek ini dapat dituliskan pada function userdraw secara langsung dengan
menyatakannya sebagai array dari titik 2-D. Sebagai contoh untuk menyatakan obyek
shape dapat dituliskan:
point2D_t shape[1000]
Untuk menyatakan obyek bunga dengan jumlah titik 360 dapat dituliskan: point2D_t
bunga[360]
Grafika Komputer 15
Modul Ajar Program D4
3.2. PolyLine
Polyline adalah suatu fungsi yang digunakan untuk menggambarkan obyek 2-D
yang sudah didefinisikan di depan, dimana setiap titik pada obyek mulai titik ke
0,1,2,3,,n dihubungkan dengan garis lur menggambar obyek 2D dengan menggunakan polyline
dapat dituliskan dengan :
drawPolyline(nama_obyek2D, jumlah_titik)
glVertex2f(pnt[i].x, pnt[i].y);
}
glEnd();
dimana :
pnt[] menyatakan obyek 2D dalam array yang ditentukan n adalah jumlah titik dalam obyek 2D pnt
void userdraw(void)
{
drawPolyline(segitiga,3);
Hasilnya adalah:
Catatan, dalam program ini, definisi sistem koordinat digunakan xrange=[0,640] dan yrange=[0,480]
yang dituliskan dengan:
gluOrtho2D(0., 640., 0., 480.);
3.3. Polygon
Polygon adalah suatu fungsi yang mirip dengan polyline hanya saja hasilnya adalah kurva tertutup,
sedangkan polyline hasilnya kurva terbuka. Seperti halnya polyline, pada polygon ini juga digunakan
konsep array dalam menyatakan obyek 2D sebagai kumpulan titik 2D.
Grafika Komputer 16
Modul Ajar Program D4
glVertex2f(pnt[i].x, pnt[i].y);
}
glEnd();
void userdraw(void)
{
drawPolygon(segitiga,3);
Hasilnya adalah:
3.3. FillPolygon
Fungsi ini digunakan untuk mewarnai atau memenuhi warna (mengecat) sebuah polygon
dengan warna tertentu. Untuk dapar mewarnai isi polygon dapat dituliskan:
fillPolygon(nama_obyek2D,jumlah_titik,warna);
Implementasi dari fungsi fillpolygon adalah:
glEnd();
Grafika Komputer 17
Modul Ajar Program D4
void userdraw(void)
{
Hasilnya adalah:
3.4. GradatePolygon
Fungsi ini digunakan untuk mewarnai sebuah polygon dengan warna-warna yang
bergradiasi dari suatu warna ke warna lainnya. Untuk memberikan efek gradiasi warna
pada polygon dapat dituliskan:
GradatePolygon(nama_obyek2D,jumlah_titik,warna);
int i; glBegin(GL_POLYGON);
glEnd();
}
Contoh implementasi menggambar obyek dengan gradatepolygon:
void userdraw(void)
{
Grafika Komputer 18
Modul Ajar Program D4
Hasilnya adalah:
Membangun obyek grafik 2-D secara umum menggunakan fungsi-fungsi seperti yang
dijelaskan di depan dapat dilakukan dengan:
Membuat obyek grafik 2-D secara langsung.
void userdraw()
{ Point2D_t bintang[10]={{80,146},{99,90},
{157,90},{110,55},{128,1},
{80,34},{32,1},{54,55},
Hasilnya adalah:
Grafika Komputer 19
Modul Ajar Program D4
Beberapa
exp(-x/2)*sin(x)
Contoh
Fungsi
0.5
0 Polar dan
2
4 hasilnya:
6
8
10 Fungsi
polar r sin(3)
0.4
Bentuk
persamaan Hasil Rose 3 daun
matematik
yang menarik
untuk dibuat
0.3 adalah
persamaan
matematik
dengan
menggunakan
sistem
0.2
koordinat
polar. r cos() r
atau r
r=f( sin()
x=r.cos( Spiral
0.1 y=r.sin(
Dimana: Lingkaran
{ srad=s*3.14/180; r=sin(5*srad);
shape[s].x=(float)(r*cos(srad)); shape[s].y=(float)(r*sin(srad));
}
Polygon(shape,360);
Animasi 2D adalah salah satu bentuk grafik 2D yang bergerak dengan berbagai macam
transformasi yang digunakan. Untuk membuat obyek grafik 2-D menjadi bergerak dapat
digunakan berbagai macam teknik animasi, seperti :
Transformasi posisi
Tweening
Morphing
Marquee
Pada transformasi posisi, Animasi yang dilakukan adalah memindahkan posisi gambar.
Pada sistem koordinat kartesian animasi akan berefek gerakan linier (translasi), pada
sistem koordinat polar akan berefek gerakan berputar (rotasi).
Pada akhir fungsi userdraw() ditambahkan perintah untuk menambah nilai tick secara
terus menerus dengan tick++.
Tambahkan nilai tick ini pada nilai variabel dasar pembuatan grafik.
Program Code Animasi 2-D Menggunakan Koordinat Polar secara lengkap adalah:
#include <glut.h>
Grafika Komputer 21
Modul Ajar Program D4
} point2D_t;
glVertex2f(pnt[i].x,pnt[i].y);
glEnd();
void userdraw()
drawPolygon(shape,360);
tick++;
void display(void)
glutInit(&argc,argv);
glutMainLoop(); return 0;
}
Animasi Lebih Lanjut
Animasi lebih lanjut akan dipelajari pada materi Transformasi 2-D, dimana animasi
dapat dilakukan dengan sangat mudah.
Program yang dibangun dengan menggunakan Transformasi 2-D ini akan menjadi lebih
user-friendly karena setiap perintahnya dapat dimengerti dengan mudah
Grafika Komputer 22
Modul Ajar Program
D4
Grafika
Komputer
23