Pengantar Computer Graphics Algoritma Da
Pengantar Computer Graphics Algoritma Da
Computer Graphics
Algoritma Dasar
Vincent Suhartono
Ha
Bacaan Teknologi Informasi
Pengantar
Computer Graphics
Algoritma Dasar
Penulis:
Vincent Suhartono
Penerbit :
CV Mulia Jaya
Redaksi :
Jalan Anggajaya II No. 291-A,
Condong Catur
Kabupaten Sleman, Yogyakarta
Telp : 0812-4994-0973
Email : cv.muliajaya291@yahoo.com
2
KATA PENGANTAR
Puji sukur, penulis panjatkan kehadirat Allah YME yang telah
memberikan segala karunia yang tak terhingga sehingga penulis
dapat menyelesaikan buku ini. Buku ini ditulis dengan maksud
untuk membantu pelajar dan mahasiswa sehingga dapat mengerti
dan memahami seluk beluk Computer Graphics meskipun hanya
dalam bentuk teori yang masih sangat mendasar.
Penulis
iii
3
DAFTAR ISI
KATA PENGANTAR ................................................................................. iii
DAFTAR ISI ............................................................................................... iv
DAFTAR GAMBAR .................................................................................. vii
DAFTAR TABEL........................................................................................ xi
Bab 1 ........................................................................................................ 12
Pendahuluan .......................................................................................... 12
1.1 Aplikasi Computer Graphics ............................................... 14
1.2 Graphics Languages ............................................................ 20
1.3 Sistem Pemrograman Grafis.............................................. 22
1.4 Komponen Graphics Library............................................... 22
Ringkasan Bab 1 ............................................................................... 24
Soal-Soal Latihan.............................................................................. 25
Bab 2 ........................................................................................................ 26
Spesifikasi Graphics Primitif ............................................................... 26
2.1 Pixel (Picture Element)......................................................... 27
2.2 Warna...................................................................................... 31
2.3 Garis ........................................................................................ 33
Bab 3 ........................................................................................................ 37
Algoritma, Analisa, dan Tampilan Graphics Dua Dimensi (2D) .... 37
3.1 Algoritma Brute Force.......................................................... 38
3.2 Algoritma DDA (Digital Diferential Analyzer) ................... 48
3.3 Algoritma Bressenham........................................................ 53
3.4 Lingkaran ............................................................................... 72
3.4.1 Simetris Delapan Titik ................................................. 74
3.4.2 Algoritma Midpoint ...................................................... 75
3.5 Polygon.................................................................................. 82
44
3.6 Filling Polygon ....................................................................... 84
3.6.1 Scan Line Polygon Fill Algorithms ............................ 84
3.6.2 Boundary-Fill Algorithm ............................................ 102
3.6.3 Flood-Fill Algorithm ................................................... 108
Ringkasan Bab 3 ............................................................................. 110
Soal-Soal Latihan............................................................................ 111
Bab 4 ...................................................................................................... 113
Atribut Output Primitif ........................................................................ 113
4.1 Atribut Titik........................................................................... 114
4.2 Atribut Garis......................................................................... 114
4.3 Tipe Garis ............................................................................. 114
4.3.1 Ukuran Garis................................................................ 115
4.3.2 Pen dan Brush............................................................. 116
4.4 Warna Garis ......................................................................... 117
Ringkasan Bab 4 ............................................................................. 118
Soal-Soal Latihan............................................................................ 119
Bab 5 ...................................................................................................... 121
Transformasi Geometri...................................................................... 121
5.1 Translasi (Pergeseran) ...................................................... 122
5.2 Scalling (Penskalaan) ........................................................ 123
5.3 Rotasi (Perputaran) ............................................................ 125
5.4 Sistem Koordinat Homogen 2D ....................................... 126
5.5 Komposisi Matrik Transformasi 2D ................................ 129
5.8 Transformasi Geometri 3D ............................................... 134
Ringkasan Bab 5 ............................................................................. 138
Soal-Soal Latihan............................................................................ 140
Daftar Istilah ......................................................................................... 142
55
Daftar Pustaka ..................................................................................... 144
Biografi Penulis.................................................................................... 145
6
vi
DAFTAR GAMBAR
Gambar 1. 1 Aplikasi grafika komputer pada bidang hiburan berupa
film-film animasi 3D ............................................................................. 14
Gambar 1. 2 (a) Visualisasi Scientific (b) Visualisasi aliran turbulen
dari angin topan..................................................................................... 15
Gambar 1. 3 Pembelajaran transformasi Fourier untuk peningkatan
kualitas citra ........................................................................................... 17
Gambar 1. 4 Gambar kartun, digambar menggunakan Paint under
window .................................................................................................... 18
Gambar 1. 5 Hasil perbaikan citra yang terkena noise domain
frekuensi menggunakan transformasi Fourier................................ 19
Gambar 1. 6 GUI dari aplikasi-aplikasi pada sistem operasi
Windows XP ........................................................................................... 20
Gambar 1. 7 Sistem Pemrograman Grafis ....................................... 22
7
vii
Gambar 3. 5 Garis mempunyai kemiringan 0 < m < 1, pada titik x =
xp+1, garis berada diantara dua titik E dan NE yang mempunyai titik
tengah di M............................................................................................. 54
Gambar 3. 6 Titik-titik pembentuk garis dengan kemiringan 0 < m
< 1, hasil perhitungan menggunakan algoritma Bressenham yang
digambar pada raster graphics. ......................................................... 60
Gambar 3. 7 Titik-titik pembentuk garis dengan kemiringan 1 < m
< 0, hasil perhitungan menggunakan algoritma Bressenham yang
digambar pada raster graphics. ......................................................... 64
Gambar 3. 8 Terjadinya gaps yang disebabkan adanya perubahan
gradient menghasilkan posisi koordinat piksel yang tidak merata
.................................................................................................................. 73
Gambar 3. 9 Delapan titik simetris pada lingkaran......................... 74
Gambar 3. 10 Garis lingkaran berada diantara titik (xk+1, yk) dan
(xk+1, yk 1) ............................................................................................ 75
Gambar 3. 11 Posisi piksel pada pembentukan lingkaran dengan
titik pusat (0,0) dan jari-jari 8 .............................................................. 82
Gambar 3. 12 Polygon sederhana dan polygon tidak sederhana 83
Gambar 3. 13 : Permukaan bola, torus dan teko yang terbentuk dari
banyak polygon. .................................................................................... 84
Gambar 3. 14 Metode scan-line ......................................................... 85
Gambar 3. 15 Aturan paritas ganjil-genap untuk mengisi warna 86
Gambar 3. 16 Perhitungan paritas pada verteks a, b, c, dan d. .. 87
Gambar 3. 17 Polygon dengan sisi-sisi horisontal ......................... 88
Gambar 3. 18.......................................................................................... 92
Gambar 3. 19.......................................................................................... 93
Gambar 3. 20.......................................................................................... 94
Gambar 3. 21.......................................................................................... 95
Gambar 3. 22.......................................................................................... 95
Gambar 3. 23.......................................................................................... 96
88
Gambar 3. 24.......................................................................................... 96
Gambar 3. 25.......................................................................................... 97
Gambar 3. 26.......................................................................................... 97
Gambar 3. 27.......................................................................................... 98
Gambar 3. 28.......................................................................................... 98
Gambar 3. 29.......................................................................................... 99
Gambar 3. 30.......................................................................................... 99
Gambar 3. 31........................................................................................ 100
Gambar 3. 32........................................................................................ 100
Gambar 3. 33........................................................................................ 101
Gambar 3. 34........................................................................................ 101
Gambar 3. 35........................................................................................ 102
Gambar 3. 36 Metode Boundary-Fill ............................................... 103
Gambar 3. 37........................................................................................ 104
Gambar 3. 38........................................................................................ 104
Gambar 3. 39........................................................................................ 105
Gambar 3. 40........................................................................................ 105
Gambar 3. 41........................................................................................ 106
Gambar 3. 42........................................................................................ 107
Gambar 3. 43........................................................................................ 108
Gambar 3. 44 penggantian warna obyek menggunakan Flood-Fill
Algorithm . (a) lingkaran berwarna merah, segitiga berwarna hijau
dan persegi berwarna biru. Obyek tersebut warnanya diubah
menjadi (b) lingkaran berwarna abu-abu, segitiga berwarna kuning
dan persegi berwarna coklat............................................................. 108
Gambar 4. 1 Type garis : solid line, dashed line, dotted line dan
dashed-dotted line .............................................................................. 115
9
9
Gambar 4. 2 Ukuran garis dari pt sampai dengan 6 pt pada
software aplikasi Microsoft Word. ................................................... 116
Gambar 4. 3 Beberapa bentuk pen atau brush pada paket program
aplikasi Paint ........................................................................................ 116
10
1
0
DAFTAR TABEL
Tabel 2. 1................................................................................................. 28
Tabel 2. 2................................................................................................. 29
Tabel 2. 3................................................................................................. 31
Tabel 2. 4................................................................................................. 32
Tabel 2. 5................................................................................................. 33
11
1
1
Bab 1
Pendahuluan
TUJUAN PEMBELAJARAN
Agar pembaca mempunyai wawasan mengenai aplikasi grafika
komputer di berbagai bidang.
OUTCOME PEMBELAJARAN
Pembaca mampu menjelaskan pengertian grafika komputer dan
bisa memberikan beberapa contoh aplikasi grafika komputer di
berbagai bidang.
Pendahuluan
12
perlu diubah hingga menjadi suatu gambaran grafis, sehingga jauh
lebih mudah untuk dicerna. Masalah ini menjadi sangat penting
jika laporan tadi akan dipergunakan sebagai acuan pengambilan
keputusan, seperti misalnya untuk pembelian. Presentasi yang
baik biasanya disertai dengan visualisasi terutama untuk tabel
dengan bilangan yang sangat banyak. Juga arah pengembangan
komputer sendiri tidak lepas dari visualisasi grafis. Sebagai contoh
adalah GUI (Graphical User Interface), yang kita pakai setiap hari
dalam penggunaan komputer. Lebih jauh lagi komputer sebagai
bagian dari multimedia dan broadcasting dituntut untuk dapat
mengolah gambar yang bergerak (video). Pengetahuan tentang
grafik programming sangat diperlukan bahkan sebagai syarat
untuk pengolahan gambar. Sehingga perlu adanya pengantar atau
penggalian kembali topik akan grafika komputer.
13
1.1 Aplikasi Computer Graphics
Peran grafika komputer dalam menghasilkan gambar sangat
penting sekali untuk perkembangan berbagai software aplikasi.
Banyak sekali aplikasi-aplikasi tertentu yang memanfaatkan
grafika komputer, diantaranya adalah:
1. Hiburan (Entertainment)
Sumber:http://www.google.com/imgres?imgurl=http://hamdi.files.wordpress.
com/2008/12/ upinipinbajubaru.jpg
14
2. Visualisasi
Sumber : http://id.wikipedia.org/wiki/Visualisasi
15
3. Computer-Aided Design (CAD)
5. Virtual Reality
16
pilot pemula sebelum melakukan penerbangan yang
sesungguhnya.
7. Computer Art
17
sebagainya menggunakan perangkat lunak CorelDraw,
Macromedia Freehand atau Adobe Ilustrator. Grafika
komputer digunakan untuk pembuatan bermacam-macam
gambar kartun sesuai dengan gagasan atau imajinasi seorang
seniman menggunakan perangkat lunak yang berbasis paint
contoh Paint, Corel Paint Shop Pro dan Adobe Photoshop.
18
Gambar 1. 5 Hasil perbaikan citra yang terkena noise domain frekuensi
menggunakan transformasi Fourier
19
Gambar 1. 6 GUI dari aplikasi-aplikasi pada sistem operasi Windows XP
20
Kumpulan Instruksi untuk berbagai fungsi output grafis
untuk Plotter.
8) PC-Graphics
21
1.3 Sistem Pemrograman Grafis
Pada system pemrograman grafis, user menginput data
(berupa program) melalui piranti input dan menggunakan
software tertentu, kemudian software memanggil graphics
library untuk mendapatkan instruksi-instruksi yang cepat,
selanjutnya hasil dari program ditampilkan dilayar berupa
gambar sesuai dengan apa yang diprogram.
22
3) Fungsi Kontrol Fungsi untuk menangani event handling,
error processing, I/O control dan lain-lain.
4) Operasi File Fungsi untuk menyimpan dan mengambil
output grafik.
5) Fungsi Matematika and Graphics - Transformasi, hidden
line removal, rendering, clipping, window to viewport
mapping, segments dan lain-lain.
6) Inquiry functions - Fungsi untuk memberitahukan tentang
status dan setting dari alat-alat output yang bekerja saat
ini.
23
Ringkasan Bab 1
Grafika komputer (Computer graphics) adalah bagian dari ilmu
komputer yang mempelajari cara-cara pembuatan dan
manipulasi gambar secara digital, sehingga dapat
memudahkan komunikasi antara manusia dan komputer, atau
manusia dengan manusia melalui gambar-gambar, bagan-
bagan, tabel dan lain-lain.
24
Soal-Soal Latihan
1. Jelaskan dan berikan contohnya peran grafika komputer
dibidang :
a. Hiburan
b. Visualisasi
c. CAD (Computer-Aided Design)
d. Virtual Reality
e. Pendidikan dan Pelatihan
f. Computer Art
g. Pengolahan Citra Digital
h. Graphical User Interface (GUI).
2. Jelaskan peran grafika komputer untuk visualisasi pada
teknologi informasi khususnya komputer!
3. Sebutkan beberapa bahasa pemrograman yang bisa
digunakan untuk mengimplementasikan teori-teori
grafika komputer!
25
Bab 2
Spesifikasi Graphics
Primitif
TUJUAN PEMBELAJARAN
Agar pembaca mengetahui definisi graphics primitif.
Agar pembaca memahami primitif geometri titik dan garis.
Agar pembaca memahami algoritma Area Filling scan line dan
Boundary Fill
OUTCOME PEMBELAJARAN
Pembaca dapat menjelaskan dan memberikan contoh tentang
definisi graphics primitif.
Pembaca dapat menjelaskan primitif geometri titik dan garis.
Pembaca dapat menjelaskan perbedaan algoritma Area Filling
scan line dan Boundary Fill.
Pendahuluan
26
rumah, tembok, gedung dan lain-lain merupakan obyek yang
lengkap yang ditempatkan pada koordinat tertentu pada layar,
dimana obyek-obyek tadi sebenarnya tersusun dari kumpulan titik
dan garis sebagai penyusunnya.
Sistem
Koordinat
Gambar 2. 1 Layar berisi M baris piksel dan N kolom piksel. Sebuah piksel (titik
hitam) terletak pd (3,2).
27
Standart x-maksimal y-maksimal Jumlah keseluruhan
Pixel
Tabel 2. 1
N
resolusi-x = pixel/inchi (ppi)
p
Persamaan 2 - 1
M
resolusi-y = pixel/inchi (ppi)
q
Persamaan 2 - 2
28
resolusi y
Aspek rasio = ( Height : Width )
resolusi x
Persamaan 2 - 3
Tabel 2. 2
29
Atribut dari piksel adalah warnanya (indeks warna) i, dimana 0 i
2n. Biasanya indeks warna yang bernilai 0 melambangkan warna
hitam.
Contoh 2.1
Diketahui sebuah sistem dengan 1280 X 1024 frame buffer,
mempunyai 4 bits per piksel. jika sistem tersebut dapat
mentransfer data 104 bits per detik, berapa lama waktu yang
dibutuhkan untuk loading ?
Jawab:
5242880 bit
Waktu loadingnya = 524,28 sekon
10 4 bit / sekon
30
2.2 Warna
Tabel 2. 3
31
x/y- 1 B/ 2 B/ 3 B/ 4 B / Piksel
Format Piksel Piksel Piksel
Tabel 2. 4
32
menjadi masalah pada layar LCD adalah sudut pandang yang
terbatas, delay time, dan tingginya harga. Secara teknis warna
pada pesawat televisi tidak dipindahkan dalam bentuk Byte
untuk setiap elemen gambarnya, akan tetapi sudah berupa
sinyal warna analog. Sebagai pembanding Photo-CD yang
dikeluarkan oleh Kodak memiliki resolusi sebesar 2500 x 3000
Piksel dengan kedalaman 3 Byte warna. Perbandingan ke tiga
format dapat dilihat pada tabel dibawah ini:
Tabel 2. 5
2.3 Garis
Software untuk menggambar garis lurus pada setiap paket
grafika komputer secara tradisi sebagai fungsi elementarnya
sudah tersedia, tetapi ada baiknya kita simak lebih seksama
bagaimana algoritma sebagai dasar penggambaran titik-titik
pada raster graphics. Raster graphics diartikan sebagai grafik
yang dibangun atas dasar titik-titik pada kolom dan baris yang
33
juga mengandung informasi warna. Gambar 2.2 adalah sebuah
garis lurus yang melalui titik (x1,y1) dan (x2,y2).
y = mx + c
Persamaan 2 - 4
Bila garis melalui titik (x1, y1) dan titik (x2, y2) maka gradien m
dihitung menggunakan persamaan (2-5)
y2 y1
m
x2 x1
Persamaan 2 - 5
34
Persamaan garis bergradien m yang melewati titik (x1, y1)
adalah:
y m ( x x1 ) y1
Persamaan 2 - 6
c y1 m . x1 y2 m.x2
atau
y2 m ( x2 x1 ) y1
atau
y2 m x y1
Persamaan 2 - 7
y2 m y1
Persamaan 2 - 8
35
Kriteria algoritma pembentuk garis yang baik:
36
Bab 3
OUTCOME PEMBELAJARAN
Pembaca dapat menjelaskan perbedaan algoritma
pembentukan garis brute force, DDA dan Bressenham.
37
Pendahuluan
38
4. Hitung kemiringan garis m = (y2 y1)/( x2 x1)
5. N = x2 x1 +1
6. x = x1
7. Ulang sebanyak N kali:
(a) y m ( x x1 ) y1
(b) lakukan pembulatan ya = Round(y),
(c) gambar titik (x,ya) di layar
(d) x = x + 1
8. selesai
Garis
yang
(xi+1,Round(y i+m))
(xi+1, y i+m)
(xi, y i)
Gambar 3. 1 Pembulatan nilai y dilakukan karena posisi pixel adalah bulat (integer)
39
Contoh 2.2
Diketahui 2 buah titik A(2,1) dan titik B(8,5) bila titik A sebagai
titik awal dan titik B sebagai titik akhir, maka buatlah garis yang
menghubungkan titik tersebut dengan menggunakan algoritma
Brute Force.
Jawab:
2. tidak dipenuhi
3. tidak dipenuhi
4. m = (5 1)/(8 2) = 0,67
5. N = 8 2 + 1 = 7
6. untuk x = 2 y = 0,67 (x 2) + 1
iterasi ke-1:
x = 2; y = 0,67. (2 2) + 1 = 1
pembulatan: y = 1
x=2+1=3
===================================================
iterasi ke-2:
x = 3; y = 0,67. (3 2) + 1 = 1,67
40
pembulatan: y = 2
x=3+1=4
===================================================
iterasi ke-3:
x = 4; y = 0,67. (4 2) + 1 = 2,34
pembulatan: y = 2
x=4+1=5
===================================================
iterasi ke-4:
x = 5; y = 0,67. (5 2) + 1 = 3,01
pembulatan: y = 3
x=5+1=6
===================================================
iterasi ke-5:
x = 6; y = 0,67. (3 2) + 1 = 3,68
pembulatan: y = 4
41
x=6+1=7
===================================================
iterasi ke-6:
x = 7; y = 0,67. (7 2) + 1 =4,35
pembulatan: y = 4
x=7+1=8
================================================
iterasi ke-7:
x = 8; y = 0,67. (7 2) + 1 =5,02
pembulatan: y = 5
42
7
1
1 2 3 4 5 6 7 8 9 10 11
Gambar 3. 2 Titik-titik pembentuk garis hasil perhitungan menggunakan
algoritma Brute Force digambar pada raster graphics.
Masalah :
Untuk kemiringan m > 1, garis menjadi tidak kontinyu (Gambar
2.5(a)) yang mengakibatkan terjadinya gap antar piksel,
sehingga diperlukan interpolasi (Gambar 2.5(b)).
(a) (b)
Gambar 3. 3 (a) Garis dengan kemiringan m > 1, tampak bahwa garis tidak
kontinyu (b) setelah dilakukan interpolasi garis menjadi kontinyu.
43
Selain menggunakan interpolasi, untuk kemiringan garis m > 1,
tukarlah x dengan y maka sudah tidak terjadi gap antara titik
yang satu dengan yang lain. Sehingga algoritma pembentukan
garis untuk m > 1 adalah sebagai berikut :
(c) Selesai
(c) Selesai
5. N = y2 y1+ 1
6. y = y1
8. selesai
Contoh 2.3
Diketahui 2 buah titik A(4,3) dan titik B(7,8) bila titik A sebagai
titik awal dan titik B sebagai titik akhir, maka buatlah garis yang
menghubungkan titik tersebut dengan menggunakan algoritma
Brute Force.
Jawab:
2. tidak dipenuhi
3. tidak dipenuhi
4. m = (7 4)/(8 3) = 0,6
5. N=83 +1=6
iterasi ke-1:
y= 3; x = 0,6. (3 3) + 4 =4
pembulatan: x = 4
y=3+1=4
45
=============================================
iterasi ke-2:
y= 4; x = 0,6. (4 3) + 4 =4,6
pembulatan: x = 5
y=4+1=5
=============================================
iterasi ke-3:
y= 5; x = 0,6. (5 3) + 4 =5,2
pembulatan: x = 5
y=5+1=6
=============================================
iterasi ke-4:
y= 6; x = 0,6. (6 3) + 4 =5,8
pembulatan: x = 6
y=6+1=7
=============================================
iterasi ke-5:
46
y= 7; x = 0,6. (7 3) + 4 =6,4
pembulatan: x = 6
y=7+1=8
=============================================
iterasi ke-6:
y= 8; x = 0,6. (8 3) + 4 =7
pembulatan: x = 7
y=8+1=9
47
3.2 Algoritma DDA (Digital Diferential Analyzer)
x_inc = dx / step
y_inc = dy / step
6. Koordinat selanjutnya :
x = x + x_inc y = y + y_inc
48
7. Lakukan pembulatan u = Round(x), v = Round(x), kemudian
plot piksel (u, v) pada layar
8. Ulangi point 6 dan 7 untuk menentukan posisi piksel
berikutnya sampai x = x2 dan y = y2.
Contoh 2.4
Diketahui 2 buah titik A(2,1) dan titik B(8,5) bila titik A sebagai
titik awal dan titik B sebagai titik akhir, maka buatlah garis yang
menghubungkan titik tersebut dengan menggunakan algoritma
DDA.
Jawab:
Titik awal (x1, y1) = A(2,1) dan Titik akhir (x2, y2) =
B(8,5)
dx = x2 x1 = 8 2 = 6 dan dy = y2 y1 = 5 1 = 4
=================================================
x+x_inc = 2 + 1 = 3
49
Pembulatan (3; 1,67) (3,2). Gambar titik (3,2) dilayar
=================================================
x+x_inc = 3 + 1 = 4
=================================================
xA+x_inc = 4 + 1 = 5
=================================================
xA+x_inc = 5 + 1 = 6
=================================================
50
Iterasi ke-5: (x,y) = (6; 3,68)
xA+x_inc = 6 + 1 = 7
=================================================
xA+x_inc = 7 + 1 = 8
=================================================
51
7
1
1 2 3 4 5 6 7 8 9 10 11
52
3.3 Algoritma Bressenham
53
NE Garis aktual
M
E
(x p, yp) x =xp +1
Gambar 3. 5 Garis mempunyai kemiringan 0 < m < 1, pada titik x = xp+1, garis
berada diantara dua titik E dan NE yang mempunyai titik tengah di M.
Dalam hal ini kita harus menentukan apakah garis berada diatas
titik tengah M atau dibawah titik tengah M. Untuk melakukan ini,
kita amati bahwa setiap garis bisa dinyatakan sebagai berikut;
F(x, y) = ax + by + c = 0
Persamaan 3 - 1
y = mx + B = (dy/dx) x + B
atau
(dy/dx) x y + B = 0
54
Kalikan dengan dx menjadi
55
dbaru = F(xp + 2, yp + 3/2) = a (xp + 2) + b (yp +3/2) + c
F(x,y) = 2 (ax + by + c) = 0.
x = x1 dan y = y1.
Contoh 2.5
Diketahui 2 buah titik A(2,1) dan titik B(8,5) bila titik A sebagai
titik awal dan titik B sebagai titik akhir, maka buatlah garis yang
menghubungkan titik tersebut dengan menggunakan algoritma
Bressenham.
Jawab:
Titik awal (x0, y0) = A(2,1) dan Titik akhir (x1, y1) =
B(8,5)
dx = x1 x0 = 8 2 = 6 dan dy = y1 y0 = 5 1 = 4
po = 2|dy| |dx| = 8 6 = 2
57
=================================================
p1 = p0 + 2|dy| 2|dx| = 2 4 = 2
=================================================
p2 = p1 + 2|dy| = 2 + 8 = 6
=================================================
p3 = p2 + 2|dy| 2|dx| = 6 4 = 2
=================================================
58
Iterasi ke-4 ( k = 3):
p4 = p3 + 2|dy| 2|dx| = 2 4 = 2
=================================================
p5 = p4 + 2|dy| = 2 + 8 = 6
=================================================
=================================================
59
Karena x = x2 = 8, maka iterasi dihentikan, sehingga diperoleh
titik-titik penyusun garis sebagai berikut: (2,1), (3,2), (4,2), (5,3),
(6,4), (7,4) dan (8,5).
1
1 2 3 4 5 6 7 8 9 10 11
60
Contoh 2.6
Diketahui 2 buah titik A(2,9) dan titik B(8,5) bila titik A sebagai
titik awal dan titik B sebagai titik akhir, maka buatlah garis yang
menghubungkan titik tersebut dengan menggunakan algoritma
Bressenham.
Jawab:
Titik awal (x0, y0) = A(2,9) dan Titik akhir (x1, y1) =
B(8,5)
dx = x1 x0 = 8 2 = 6 dan dy = y1 y0 = 5 9 = 4
po = 2|dy| |dx| = 8 6 = 2
=================================================
p1 = p0 + 2|dy| 2|dx|= 24 = 2
=================================================
61
Iterasi ke-2 ( k = 1):
p2 = p1 + 2|dy| = 2 + 8 = 6
=================================================
p3 = p2 + 2|dy| 2|dx|= = 6 4 = 2
=================================================
p4 = p3 + 2|dy| 2|dx|= = 2 4 = 2
=================================================
62
Titik awal = (6,6)
p5 = p4 + 2|dy| = 2 + 8 = 6
=================================================
p6 = p5 + 2|dy| 2|dx| = 6 4 = 2
=================================================
63
10
1 2 3 4 5 6 7 8 9 10 11
2. Tentukan salah satu sebagai titik awal (x0, y0) dan titik akhir (x1,
y1).
64
5. Untuk setiap yk sepanjang jalur garis, dimulai dengan k = 0
x = x1 dan y = y1.
Contoh 2.7
Diketahui 2 buah titik A(2,1) dan titik B(4,7) bila titik A sebagai
titik awal dan titik B sebagai titik akhir, maka buatlah garis yang
menghubungkan titik tersebut dengan menggunakan algoritma
Bressenham.
Jawab:
Titik awal (x0, y0) = A(2,1) dan Titik akhir (x1, y1) =
B(4,7)
dx = x1 x0 = 4 2 = 2 dan dy = y1 y0 = 7 1 = 6
65
po = 2|dx| |dy| = 4 6 = 2
=================================================
p1 = po + 2|dx| = 2 + 4 = 2
=================================================
p2 = p1 + 2|dx| 2|dy| = 2 8 = 6
=================================================
p3 = p2 + 2|dx| = 6 + 4 = 2
66
=================================================
p4 = p3 + 2|dx| = 2 +4 = 2
=================================================
p5 = p4 + 2|dx| 2|dy| = 2 8 = 6
=================================================
p6 = p5 + 2|dx| = 6 + 4 = 2
=================================================
67
Sampai disini iterasi dihentikan.
Contoh 2.8
Diketahui 2 buah titik A(6,10) dan titik B(0,0) bila titik A sebagai
titik awal dan titik B sebagai titik akhir, maka buatlah garis yang
menghubungkan titik tersebut dengan menggunakan algoritma
Bressenham.
Jawab:
Titik awal (x0, y0) = A(6,10) dan Titik akhir (x1, y1) =
B(0,0)
dx = x1 x0 = 0 (6) = 6 dan dy = y1 y0 = 0 10 =
10
68
2|dx| = 12 ; 2|dy| = 20 dan 2|dx| 2|dy| = 12 20
= 8
po = 2|dx| |dy| = 12 10 = 2
=================================================
p1 = po + 2|dx| 2|dy| = 2 8 = 6
=================================================
p2 = p1 + 2|dx| = 6 + 12 = 6
=================================================
69
x = 5 + 1 = 4 dan y = 8 1 = 7, koordinat selanjutnya :
(4,7)
p3 = p2 + 2|dx| 2|dy|= 6 8 = 2
=================================================
p4 = p3 + 2|dx| = 2 + 12 = 10
=================================================
p5 = p4 + 2|dx| 2|dy| = 10 8 = 2
=================================================
70
x = 3 + 1 = 2 dan y = 5 1 = 4, koordinat selanjutnya :
(2,4)
p5 = p4 + 2|dx| 2|dy| = 2 8 = 6
=================================================
p4 = p3 + 2|dx| = 6 + 12 = 6
=================================================
p8 = p7 + 2|dx| 2|dy| = 6 8 = 2
=================================================
71
p9 = p8 + 2|dx| = 2 + 12 = 10
=================================================
=================================================
3.4 Lingkaran
Persamaan umum lingkaran dengan pusat lingkaran (xp, yp) dan
jari-jari r adalah:
( x x p )2 ( y y p )2 r 2
Persamaan 3 - 2
Atau
y y p [r 2 ( x x p )2 ]
Persamaan 3 - 3
72
Algoritma ini memerlukan waktu operasi yang besar, karena
mengandung operasi perkalian dua bilangan integer,
membutuhkan fungsi SQRT (untuk menghitung akar suatu
bilangan) dan fungsi ROUND (untuk membulatkan bilangan
pecahan menjadi bilangan integer), dan menghasilkan posisi
koordinat piksel yang tidak merata, karena terjadinya gaps yang
disebabkan adanya perubahan gradient seperti tampak pada
Gambar 3.8.
Persamaan 3 - 4
73
Akan tetapi penggambaran lingkaran menggunakan persamaan
(3-4) memerlukan waktu operasi yang besar karena
mengandung operasi perkalian bilangan riel, perhitungan
trigonometri, dan membutuhkan banyak segmen garis.
(x,y), (x, y), (x, y), (y,x), (y,x), (y, x), (y, x)
(x, y), (x,y), (x, y), (x, y), (y,x), (y,x), (y, x), (y, x)
( x,y)
74
3.4.2 Algoritma Midpoint
Gambar 3. 10 Garis lingkaran berada diantara titik (xk+1, yk) dan (xk+1, yk 1)
f ( x, y) x 2 y 2 r 2
Sehingga,
hitung
2
pk 1 f x 1, y 1 1) 1] 2 y 1 r2
k1 k1 2 [( x k k1 2
Atau
pk 1 pk 2(xk 1) ( yk 1 yk ) 2( yk 1 y2k ) 1
p 0 f (1, r 1 ) 1 (r 1 ) r2 5 r
2 2 2 4
p0 1 r
76
Kemudian jika pk < 0 maka:
pk 1 pk 2xk 1 1
Jika pk > 0 maka:
pk 1 pk 2xk 1 1 2 yk 1
5
p0 r
4
p0 1 r
- bila pk < 0 maka titik selanjutnya adalah (xk+1, yk) dan pk+1
= pk + 2 xk+1 + 1
77
- bila tidak, titik selanjutnya adalah (xk+1, yk 1) dan pk+1 = pk
+ 2 xk+1 + 1 2 yk+1
Contoh 2.9
Iterasi ke-1:
K=0 X0 = 0 Y0 = r = 8 P0 = 1 r = 1 8 = 7
P1 = p0 + 2 x1 + 1 = 7 + 2.(1) + 1 = 4
78
(1,8), (1,8), (1, 8), (1, 8), (8,1), (8,1), (8, 1), (8, 1)
(5, 14), (3, 14), (5, 2), (3, 2), (12, 7), (4, 7), (12, 5), (4, 5)
=================================================
Iterasi ke-2:
K=1 X1 = 1 Y1 = 8 P1 = 4
P2 = p1 + 2 x2 + 1 = 4 + 2.(2) + 1 = 1
(2,8), (2,8), (2, 8), (2, 8), (8,2), (8,2), (8, 2), (8, 2)
(6, 14), (2, 14), (6, 2), (2, 2), (12, 8), (4, 8), (12, 4), (4, 4)
=================================================
Iterasi ke-3:
K=2 X2 = 2 Y2 = 8 P2 = 1
79
X3 = X2 + 1 = 2 + 1 = 3 dan Y3 = Y2 1 = 8 1 = 7 , jadi
Titik selanjutnya : (3,7)
P3 = p2 + 2 x3 + 1 2 y3 = 1 + 2.(3) + 1 2.(7) = 6
(3,7), (3,7), (3, 7), (3, 7), (7,3), (7,3), (7, 3), (7, 3)
=================================================
(7, 13), (1, 13), (7, 1), (1, 1), (11, 9), (3, 9), (11, 3), (3, 3)
Iterasi ke-4:
K=3 X3 = 3 Y3 = 7 P3 = 6
P4 = p3 + 2 x4 + 1 = 6 + 2.(4) + 1 = 3
(4,7), (4,7), (4, 7), (4, 7), (7,4), (7,4), (7, 4), (7, 4)
(8, 13), (0, 13), (8, 1), (0, 1), (11, 10), (3, 10), (11, 2), (3, 2)
80
=================================================
Iterasi ke-5:
K=4 X4 = 4 Y4 = 7 P4 = 3
X5 = X4 + 1 = 4 + 1 = 5 dan Y5 = Y4 1 = 7 1 = 6 , jadi
Titik selanjutnya : (5,6)
P5 = p4 + 2 x4 + 1 2 y4 = 3 + 2.(5) + 1 2.(6) = 2
(5,6), (5,6), (5, 6), (5, 6), (6,5), (6,5), (6, 5), (6, 5)
(9, 12), (1, 12), (9, 0), (1, 0), (10, 11), (2, 11), (10, 1), (2, 1)
=================================================
Iterasi ke-6:
K=5 X5 = 5 Y5 = 6 P5 = 2
X6 = X5 + 1 = 5 + 1 = 6 dan Y6 = Y5 1 = 6 1 = 5 , jadi
Titik selanjutnya : (6,5)
81
Bila digambar, hasil untuk oktan ke-1 ditunjukkan oleh gambar
(3.11).
Gambar 3. 11 Posisi piksel pada pembentukan lingkaran dengan titik pusat (0,0)
dan jari-jari 8
3.5 Polygon
Polygon adalah kumpulan garis lurus yang saling menyambung
hingga membentuk suatu luasan. Garis-garis ini disebut edge
(sisi polygon). Titik pertemuan tiap dua sisi disebut verteks.
Biasanya polygon dinyatakan dengan koordinat verteks-verteks
ini. Ada dua jenis polygon yaitu polygon sederhana dan polygon
tidak sederhana. Ciri polygon sederhana adalah tidak semua
verteks berada pada bidang yang sama, tidak mempunyai sisi-
sisi yang berpotongan, dan tidak mempunyai lubang.
82
(a)
83
Gambar 3. 13 : Permukaan bola, torus dan teko yang terbentuk dari banyak
polygon.
84
untuk pengisian warna pada obyek-obyek sederhana lainnya,
misalnya lingkaran, ellip dan lain-lain.
Scanline
terakhir
Titik potong
Titik potong
x1 x2
Piksel-piksel diantara
titik potong x1-x2
Scanline
pertama
Inside-Outside test
85
paritas ganjil
paritas genap
Masalah:
86
a
1
c 2
2
b d 1
(a)
a
c
b d
(b)
Solusi:
87
panahnya berubah (pada verteks b dan c yaitu: naik-turun atau
turun-naik) maka pada verteks tersebut dihitung dua kali.
Sebaliknya jika arah anak panahnya tidak berubah (pada verteks
a dan d yaitu: naik-naik atau turun-turun) maka pada verteks
tersebut dihitung sekali.
Masalah:
(a) (b)
Gambar 3. 17 Polygon dengan sisi-sisi horisontal
Solusi:
88
Algoritma scanline menggunakan kaidah paritas ganjil-genap:
Solusi:
Menggunakan konsep edge table (ET)
Edge Table ( ET ), edge table (ET) adalah tabel yang berisi sisi-
sisi polygon. Kita akan menggunakan dua edge table yang
berbeda, yaitu: Active Edge Table (AET) dan Global Edge Table
(GET). (AET) digunakan untuk menyimpan semua sisi polygon
yang berpotongan dengan garis scan, sedangkan GET
digunakan untuk menyimpan semua sisi polygon dan meng-
update AET.
(x@ymax,ymax)
(x@ymin,ymin)
89
Kita tahu bahwa:
y max y min
y mx b, m
x@ y max x@ y min
yi 1 yi 1
yb m
x
Sehingga,
yi b yi 1 b m
i x , xi 1
m
Dan
yi 1 yi 1
Maka
yi 1 b yi b 1 1
x x
i1 i
m m m m
90
Ini adalah cara yang efisien untuk menghitung nilai x.
91
3. Inisialisasi, set AET = kosong
4. Ulang sampai AET dan GET kosong
a. Tambahkan sisi-sisi dari GET ke AET yang mana ymin =
y.
b. Hilangkan sisi-sisi dari AET bila ymax = y.
c. Urutkan AET berdasarkan x
d. Warnai piksel yang terletak diantara pasangan titik
potong dalam AET
e. Untuk setiap sisi dalam AET, ganti x dengan x + 1/m
f. Set y = y + 1 untuk bergerak ke garis scan berikutnya
Contoh 2.10
Diketahui polygon berikut, gunakan konsep edge table untuk
mewarnai polygon tersebut.
Gambar 3. 18
92
Sisi-sisi pembentuk polygon:
Gambar 3. 19
93
Gambar 3. 20
4, 2, 2/3 5, 2, 1/4
EA
AB
xkiri = 2 xkanan = 2
94
Gambar 3. 21
Gambar 3. 22
EA AB
xi+1 = xi + 1/m xi+1 = xi + 1/m
= 2 2/3 = 2 + 1/4
= 4/3 = 9/4
Gambar 3. 24
EA AB
xi+1 = xi + 1/m xi+1 = xi + 1/m
= 2/3 = 10/4
Gambar 3. 26
EA = DE AB
pada EA, ymax = 4. EA harus dihapus xi+1 = xi + 1/m
dari AET. Dalam GET sisi DE = 10/4 + 1/4
tersimpan pada y = 4. Jadi sisi EA
diganti dengan sisi DE = 11/4
Gambar 3. 27
Gambar 3. 28
8, 3/4 , 3/4 6, 3, 3
DE AB = BC
xi+1 = xi + 1/m pada AB, ymax = 5. AB harus
dihapus dari AET. Dalam GET sisi
= 0 + 3/4 BC tersimpan pada y = 5. Jadi sisi
= 3/4 AB diganti dengan sisi BC
Gambar 3. 29
Gambar 3. 30
DE BC = CD
pada BC, ymax = 6. BC harus
xi+1 = xi + 1/m dihapus dari AET. Dalam GET sisi
= 3/4 + 3/4 CD tersimpan pada y = 6. Jadi sisi
BC diganti dengan sisi CD
= 6/4
xkiri = 6/4 2 dan xkanan = 6
99
Pewarnaan dilakukan diantara titik potong (xkiri xkanan) = (2 6),
hasilnya adalah;
Gambar 3. 31
Gambar 3. 32
DE CD
xi+1 = xi + 1/m xi+1 = xi + 1/m
= 6/4 + 3/4 = 6 3/2
= 9/4 = 9/2
xkiri = 9/4 2 dan xkanan = 9/2 5
100
Pewarnaan dilakukan diantara titik potong (xkiri xkanan) = (2 5),
hasilnya adalah;
Gambar 3. 33
Gambar 3. 34
8, 3, 3/4 8, 3, 3/2
DE CD
xi+1 = xi + 1/m xi+1 = xi + 1/m
= 9/4 + 3/4 = 9/2 3/2
=3 =3
xkanan = 3
xkiri = 3 dan
101
Pewarnaan dilakukan diantara titik potong (xkiri xkanan) = (3 3),
hasilnya adalah;
Gambar 3. 35
Karena sisi polygon dalam GET ataupun AET sudah habis, maka
proses dihentikan.
102
Dengan teknik ini pengisian warna dimulai dari sebuah titik yang
berada didalam area (x,y) polygon dan mewarnai piksel dari titik
tetangganya hingga semua piksel yang berada didalam polygon
telah diwarnai seperti pada Gambar 2.20.
103
a) 4 - tetangga
4 X 2
Gambar 3. 37
b) 8 - tetangga
1 2 3
8 X 4
7 6 5
Gambar 3. 38
Contoh 2.11
diketahui : polygon = {(1,1), (2,,5), (5,4), (8,7), (10,4), (10,2), (1,1)},
lakukan Area Filling menggunakan algoritma Boundary Fill
Algorithm 4-tetangga.
Jawab:
104
7
1
1 2 3 4 5 6 7 8 9 10 11
Gambar 3. 39
1
1 2 3 4 5 6 7 8 9 10 11
Gambar 3. 40
105
Ke-4 tetangga tersebut bukan garis batas poligon, sehingga 4-
titik tersebut diwarnai merah.
1 2 3 4 5 6 7 8 9 10 11
Gambar 3. 41
106
7
1
1 2 3 4 5 6 7 8 9 10 11
Gambar 3. 42
Ambil titik (3,4). 4-tetangga titik tersebut adalah (3,3), (3,5), (2,4),
(4,4). Titik (3,3) sudah diwarnai. Titik (3,5), (2,4) dan (4,4) adalah
garis batas jadi tidak diwarnai.
107
7
1 2 3 4 5 6 7 8 9 10 11
Gambar 3. 43
(a) (b)
108
Algoritma ini dimulai dari titik yang berada didalam area (x,y)
dan mengganti semua pikselnya dengan warna baru sehingga
bagian dalam area mempunyai warna yang sama. Pengujian
titik tetangga bisa menggunakan 4-tetangga atau 8-tetangga.
109
Ringkasan Bab 3
110
Soal-Soal Latihan
1. Apa yang dimaksud dengan output primitif ? Sebutkan !
111
5. Diketahui : polygon = {(2,1), (3,6), (5,4), (8,8), (10,4), (12,2),
(2,1)}, lakukan Area Filling menggunakan (a) algoritma Scan
Line Polygon (b) algoritma Boundary Fill.
112
Bab 4
OUTCOME PEMBELAJARAN
Pembaca bisa mendefinisikan pengertian output primitive
Pendahuluan
113
Warna garis batas
114
menggunakan pixel mask, contohnya 11100000 akan
menampilkan garis putus-putus dengan panjang dash 3 dan
jarak antar dash 5. Gambar 4.1 memperlihatkan tipe-tipe garis:
Solid line
Dashed line
Dotted line
Gambar 4. 1 Type garis : solid line, dashed line, dotted line dan dashed-
dotted line
115
Gambar 4. 2 Ukuran garis dari pt sampai dengan 6 pt pada software
aplikasi Microsoft Word.
Gambar 4. 3 Beberapa bentuk pen atau brush pada paket program aplikasi
Paint
116
4.4 Warna Garis
117
Ringkasan Bab 4
Atribut adalah semua parameter yang mempengaruhi
bagaimana primitive grafis ditampilkan. Atribut dari output
primitif dapat berupa:
Atribut dasar untuk garis adalah tipe (type), tebal (width) dan
warna (color).
118
Soal-Soal Latihan
119
4. Ubahlah algoritma pembentukan garis DDA dan Bressenham
untuk membuat garis putus-putus (dashed), garis titik-titik
(dotted) dan garis putus-titik-titik.
120
Bab 5
Transformasi Geometri
TUJUAN PEMBELAJARAN
Pembaca bisa memahami konsep transformasi geometri 2-D
dan 3-D: translasi, rotasi, Refleksi, Shear dan scalling.
OUTCOME PEMBELAJARAN
Pembaca bisa menghitung transformasi geometri 2-D secara
manual
Pendahuluan
121
5.1 Translasi (Pergeseran)
Sebuah titik A(x,y) digeser searah sumbu X sejauh tx dan searah
sumbu Y sejauh ty (perhatikan Gambar 5.1),
x = x + tx
y = y + ty
x = x + 0.y + tx
y = 0.x + y + ty
122
Contoh 5.1
Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik
A(20,20), B(100,20) dan C(60,120) jika dilakukan penggeseran
80
pada .
70
Jawab:
123
maka koordinat hasil penskalaan dapat ditentukan sebagai
berikut :
x = Sx(x-a) + a
y = Sy(y-b) + b
atau
x = Sxx + a Sxa
y = Syy + b Syb
S 0
S= x
Sy
.
0
124
Contoh 5.2
Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik
A(20,20), B(100,20) dan C(60,120), jika dilakukan penskalaan
4
dengan faktor skala terhadap titik pusat P(0,0)
2
Jawab:
125
x' cos sin x
.
y' sin cos y
Contoh 5.3
Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik
A(20,20), B(100,20) dan C(60,120), jika dilakukan pemutaran
dengan pusat sumbu koordinat dengan rotasi putarnya 180
derajat berlawanan arah dengan arah jarum jam.
Jawab :
x' 1 0 20 100 60 20 100 60
.
y' 0 1 20 20 120 20 20 120
127
operasi perkalian matriks. Hal ini dapat dilakukan dengan
dengan menggunakan sistem koordinat homogen.
y' .b d t y
y
1 0 0 11
x' 1 0 tx x
y' = 0 1 ty y
1 0 0 1 1
128
Sx 0 0
Sy
Matrik penyajian Scalling : S = 0 0 , sehingga
0 0 1
x' S x 0 0 x
y' = 0 Sy 0 y
1 0 0 1 1
cos sin 0
Matrik penyajian Rotasi: R = sin cos 0 , sehingga
0 0 1
1 0 0 1 1
Contoh 5.4
Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik
A(10,2), B(10,8) dan C(3,2) jika dilakukan transformasi berikut :
Jawab:
130
x' 1 0 4 10 10 3 14 14 7
a) y' = 0 1 2 2 8 2 = 0 6 0
1 0 0 1 1 1 1 1 1 1
x' 2 0 0 10 10 3 20 20 6
b) y' = 0 2 0 2 8 2 = 4 16 4
1 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1
2 8 2
10 10 3
1 1 1
131
5.5 Komposisi Matrik Transformasi 2D
132
perkalian matrik penyajian secara berurutan. Karena perkalian
matrik tidak bersifat komutatif, maka urut-urutan perkalian
matrik harus diperhatian (tidak boleh kebalik) karena
menunjukkan urut-urutan transformasi yang dilakukan.
Contoh 5.5
Sebuah segmen garis AB dimana A(0,5) dan B(10,0) akan
dirotasikan 90o terhadap titik A. Bagaimana proses ini
dilakukan? Apakah langsung dilakukan proses rotasi 90o ?
5 5 B
A B A
0 5 1 0 5 1
Gambar 5. 1
Jawab:
Jika langsung dirotasikan 90o hasilnya sebagai berikut:
x'x 0 1 05 10 0 0
y' 1 0 00 0 5 10 133
y
1 0 0 11 1 1 1
134
Diperoleh titik hasil transformasi : A(0,5) dan B(0,10)
1 B
5 5 A
A B
0 5 1 0 5 1
Gambar 5. 2
Tentu saja hasil ini tidak seperti yang kita harapkan (hasilnya
salah).
5 5
A B A B
0 5 10 0 5 10
(a) (b)
Gambar 5. 3
135
5 B 5 B
A A
0 5 10 0 5 10
(a) (b)
Gambar 5. 4
y' 0 1 01 0 00 1 0 0 0
136
1 0 0 1 0 0 1 0 0 1 1 1
x' 5 5
y' 0 5
1 1 1
137
Diperoleh titik hasil transformasi : A(5,0) dan B(5,5)
5 5 B
A B A
0 5 10 0 5 10
Gambar 5. 5
Contoh 5.6
Tentukan posisi dari segitiga ABC yang dibentuk oleh titik-titik
A(5,5), B(10,5) dan C(8,10) jika dilakukan komposisi
6
transformasi berikut: penggeseran pada , dilanjutkan
6
dengan rotasi 90 berlawanan jarum jam, kemudian diakhiri
3
dengan penskalaan dengan faktor skala terhadap titik
3
pusat P(0,0).
Jawab:
y' S * R * T * y
1 1
138
Proses dilakukan terhadap operasi translasi terlebih dahulu
x' 3 0 0 cos(90) sin(90) 0 1 0 6 5 10 8
x' 33 33 48
y' 33 48 42
1 1 1 1
a) Translasi
y
(x, y, z)
(x, y,
z 134
x' x Tx
Dalam hal ini, y' y T y
z' z Tz
x' 1 0 0 Tx x
y' 0 1 0 Ty y
Dalam bentuk matrik
z' 0 0 1 Tz z
1 0 0 0 1 1
b) Penskalaan (Scalling)
y (x, y, z)
T (Sx, S y, Sz)
x
(x, y,
x' S x .x
Dalam hal ini, y' S y .y .
z' S z .z
135
x' S x 0 0 0 x
y' 0 Sy 0 0 y
Dalam bentuk matrik
z' 0 0 Sz 0 z
1 0 0 0 1 1
c) Rotasi
(x, y, z)
(x, y,
z
x' x cos y sin
Dalam hal ini, y' x sin y cos
z' z
136
Dengan cara yang sama diperoleh rotasi terhadap sumbu-x
sebesar sudut .
137
x' x
y' y cos z sin
z' y sin z cos
x' 1 0 0 0 x
y' 0 cos
sin 0 y
z' 0 sin cos 0 z
1 0 0 0 1 1
138
Ringkasan Bab 5
Transformasi geometri pada dasarnya adalah proses yang
mengubah kedudukan setiap titik yang membentuk obyek.
Transformasi yang banyak digunakan di dalam grafika
komputer adalah transformasi affin (affine tranformation),
yaitu: penggeseran (translation), penskalaan (scaling),
pemutaran (rotation) dan shearing.
x' 1 0 tx x
Translasi : y' = 0 1 ty y
1 0 0 1 1
x' S x 0 0 x
Penskalaan : y' = 0 Sy 0 y
1 0 0 1 1
139
x' cos sin 0 x
Rotasi : y' = sin cos 0 y
1 0 0 1 1
140
Berikut adalah bentuk matrik Tranformasi 3D
x' 1 0 0 Tx x
y' 0 1 0 Ty y
Translasi:
z' 0 0 1 Tz z
1 0 0 0 1 1
x' S x 0 0 0 x
y' 0 Sy 0 0 y
Penskalaan:
z' 0 0 Sz 0 z
1 0 0 0 1 1
x' 1 0 0 0 x
y' 0 cos sin
0 y
Rotasi terhadap sumbu-x:
z' 0 sin cos 0 z
141
1 0 0 0 1 1
142
Soal-Soal Latihan
143
a) translasi kearah sumbu x = 2, sumbu y = 3, sumbu z = 4
144
b) Scalling dengan skala kearah sumbu x = 5, sumbu y = 3,
sumbu z = 7
145
Daftar Istilah
AVI: AVI definisi Microsoft untuk Audio Video Interleave.
Standar format file video untuk Platform Ms Windows.
146
Streaming: Pengiriman data video melalui internet atau jaringan
lain, dimana video langsung dapat dilihat meskipun proses
pengiriman masih berlangsung.
147
Daftar Pustaka
Andreas Butz, Computergrafik 1, SS 2015, Ludwig-Maximilians
Universitaet Muenchen
148
Biografi Penulis
149