Anda di halaman 1dari 6

Modul Grafika Komputer

Pertemuan VI
REVIEW MATERI GRAFIKA KOMPUTER

DESKRIPSI SINGKAT :
Pada pertemuan ini mahasiswa akan mereview materi grafika
komputer di pertemuan I-V

TUJUAN DAN SASARAN:


Pada akhir pertemuan ini mahasiswa diharapkan mampu :
1. Mereview materi output primitif mulai dari titik, garis, lingkaran
dan ellips
2. Mereview materi kurva baik kurva standar maupun kurva bezier
3. Mereview materi atribut kurva primitif baik pewarnaan, style dan
pengisian.

Atribut Output Primitif Page 1


Modul Grafika Komputer

7.1 Output Primitif


Output primitif yang dipelajari pada matakuliah Grafika Komputer ini
adalah titik, garis, lingkaran, ellips dan kurva
7.1.1 Garis
Algoritma pembentukan garis DDA adalah sebagai berikut :
void lineDDA (int x0, int y0, int xEnd, int yEnd)
{
int dx = xEnd - x0, dy = yEnd - y0, steps, k;
float xIncrement, yIncrement, x = x0, y = y0;
if (fabs (dx) > fabs (dy))
steps = fabs (dx);
else
steps = fabs (dy);
xIncrement = float (dx) / float (steps);
yIncrement = float (dy) / float (steps);
setPixel (round (x), round (y));
for (k = 0; k < steps; k++) {
x += xIncrement;
y += yIncrement;
setPixel (round (x), round (y));
}
}

Algoritma Pembentukan garis Bresenham


P0=2Δy-Δx
Plot (X0,Y0)
Repeat
If Pk<0 then
Plot (Xk+1,Yk)
Pk+1=Pk+2Δy
Otherwise
Plot (Xk+1,Yk+1)
Pk+1=Pk+2Δy-2Δx
Until (k=(Δx-1))

Atribut Output Primitif Page 2


Modul Grafika Komputer

7.1.2 Lingkaran
Algoritma pembentukan lingkaran
1. Input jari-jari r dan koordinat pusat lingkaran (xc, yc), kemudian tntukan
koordinat untuk titik awal yaitu (xo, y0) = (0, r).

2. Hitung nilai awal untuk parameter keputusan p0 = 1 – r


3. Untuk setiap xk, mulai dari k=0, lakukan langkah berikut :
jika pk<0, maka titik selanjutnya pada lingkaran dengan pusat (0,0) adalah

(xk + 1, yk) dan pk+1 = pk + 2 xk+1 + 1,


jika pk≥0, titik berikutnya adalah (xk+ 1, yk - 1)
dan pk+1 = pk + 2 xk+1 + 1 - 2 yk+1
dimana 2 xk+1 = 2 xk + 2, dan 2 yk+1 = 2 yk – 2

4. Tentukan titik simetri untuk 7 oktan lainnya dengan menggunakan table


3.x
5. Untuk lingkaran dengan pusat bukan di (0,0). Pindahkan setiap posisi
pixel hasil perhitungan (x, y) dengan rumus x = x + xc , y = y + yc

6. Ulangi langkah 3 sampai 5, hentikan ketika x >= y

7.1.3 Ellips
Algoritma Pembentukan Ellips
Algoritma untuk menggambarkan ellips yang dikenal dengan sebutan
Midpoint ellipse algorithm adalah sebagai berikut :
1. Input rx, ry dan pusat Ellips (xc, yc), tentukan titik pertama pada pusat
ellips sebagai : (x0,y0) = (0,Ry)
2. Hitung nilai awal parameter keputusan di region 1 :
P10 = ry2 – rx2ry + ¼ r2x
3. Untuk semua xk di region 1, dimulai dari k=0 lakukan tes berikut :
jika p1k < 0 titik selanjutnya dari ellips yang berpusat di (0,0) adalah
(xk+1,yk) dan p1k+1 = p1k + 2r2yxk+1 + ry2
jika p1k >=0 maka titik selanjutnya adalah :

Atribut Output Primitif Page 3


Modul Grafika Komputer

(xk+1,yk-1) dan p1k+1 = p1k + 2rx2yk+1 + ry2


dengan 2ry2xk+1 = 2r2yxk + 2r y 2 dan 2rx2yk+1 = 2r2xyk + 2r x 2
4. Hitung nilai awal dari parameter keputusan di region 2 menggunakan titik
akhir dari region 1 sebagai (x0,y0) dengan rumus :
P20 = ry2(x0 + ½)2 + rx2 (y0-1)2 - r x 2 ry2
5. Untuk setiap yk di region 2 dimulai dari k=0 lakukan uji berikut :
jika p2k < 0 titik selanjutnya dari ellips yang berpusat di (0,0) adalah
(x,yk-1) dan p2k+1 = p2k - 2r x 2yk+1 + rx2
jika p2k >=0 maka titik selanjutnya adalah :
(xk+1,yk-1) dan p2k+1 = p2k + 2rx2yk+1 + rx2
6. Tentukan titik simetris pada tiga kuadran lainnya
7. Pindahkan posisi (x,y) ke titik pusat ellips (xc, yc) dengan rumus
x = x + xc dan y = y + yc
8. Ulangi langkah untuk region 1 sampai 2ry2x ≥ 2rx2y
7.2 Kurva dan Karakter
Fungsi kurva sangat berguna dalam proses pemodelan objek, penggambaran
jalur animasi, pemodelan data dan aplikasi grafis lainnya. Kurva yang biasa
digunakan untuk proses tersebut diantaranya adalah kurva berbentuk :
 Konik
 Fungsi Trigonometri
 Distribusi probabilitas
 Polynomial
 Fungsi spline
Kurva Bezier diterapkan di bidang grafika computer untuk menghasilkan kurva
yang halus pada berbagai skala. Kurva Bezier diberinama sesuai dengan
penemunya yaitu Dr. Pierre Bezier. Dr. Pierre Bezier adalah seorang engineer
pada perusahaan mobil Renault, persamaan Bezier sendiri dikembangkan pada
tahun 1960-an dan digunakan untuk desain body mobil.
Pada kurva Bezier t dibatasi pada interval 0..1. Persamaan sebuah
kurva Bezier dengan n titik control {P1, P2, P3…Pn} adalah sebagai berikut :

Atribut Output Primitif Page 4


Modul Grafika Komputer

Gambar 7.1 Persamaan Kurva Bezier

7.3 Atribut Grafis


Atribut adalah semua parameter yang mempengaruhi bagaimana
primitive grafis ditampilkan. Atribut dasar untuk titik adalah ukuran dan warna.
Ukuran titik direpresentasikan sebagai beberapa piksel.
Tabel 7.x Atribut Objek Grafis
Objek Grafis Atribut
Titik Warna, Ukuran
Garis Warna, Ukuran, Style (Solid, Dashed, Dotted)
Lingkaran Warna Boundary, Warna Isi, Style Boundary,
Ketebalan Boundary
Ellips Warna Boundary, Warna Isi, Style Boundary,
Ketebalan Boundary

Ada beberapa algoritma pengisian warna sebagai berikut :


1. Scan Line Algorithm
Dimulai dari kiri atas layar
Bergerak ke kanan hingga batas kanan layar
Ulangi untuk baris-baris berikutnya
Jika ditemukan suatu batas area, maka dilakukan operasi putpixel hingga
ditemukan batas area berikutnya

2. BoundaryFill Algorithm
Procedure BoundaryFill (x,y,fill,boundary : Integer);
Var
Current : integer;
Begin
Atribut Output Primitif Page 5
Modul Grafika Komputer

Current = getpixel(x,y);
If (Current<>boundary) and (Current<>fill) then
Begin
setpixel (x,y,fill);
Boundaryfill4(x+1,y,fill,boundary);
Boundaryfill4 (x-1,y,fill, boundary);
Boundaryfill4 (x,y+1,fill, boundary);
Boundaryfill4 (x,y-1,fill, boundary);
End;
End;

3. FloodFill Algorithm
void boundaryFill4 (int x, int y, int fillcolour, int borderColor)
{
int interiorColor;
/* Set current color to fillcolour, then perform following oprations. */
getPixel (x, y, interiorColor);
if ((interiorColor != borderColor) && (interiorColor != fillcolour)) {
setPixel (x, y); // Set color of pixel to fillcolouror.
boundaryFill4 (x + 1, y , fillcolour, borderColor);
boundaryFill4 (x - 1, y , fillcolour, borderColor);
boundaryFill4 (x , y + 1, fillcolour, borderColor);
boundaryFill4 (x , y - 1, fillcolour, borderColor)
}
}

6.1.1 Referensi
[1] Hearn, Donald, M. Pauline Baker, Computer Graphics, Prentice Hall.
[2] Rowe, Glenn W, Computer Graphics with Java, Palgrave, 2001
[3] Sutopo, Ariesto Hadi, Pengantar Grafika Komputer, Gava Media, 2002

Atribut Output Primitif Page 6

Anda mungkin juga menyukai