Komputer Grafik
l Grafika komputer adalah suatu bidang ilmu yang
mempelajari bagaimana membangun grafik (gambar) baik 2D maupun 3D yang
kelihatan nyata menggunakan komputer
l Salah satu bidang grafika komputer yang sangat
terkenal adalah Desain grafis
l Teknik-teknik dalam ilmu komputer dan matematika untuk
merepresentasikan dan memanipulasi data gambar menggunakan komputer .
l Grafika komputer juga dapat diartikan segala sesuatu
selain teks atau suara
Ruang Lingkup
Grafika Komputer
l Grafika Komputer bukan ilmu yang berdiri sendiri.
l Pada dasarnya banyak ilmu yang menyokong sekaligus
menjadi dasar grafika komputer.
Misalnya ilmu
matematika, geometri, analisis/metode numerik dan ilmu komputasi. Jika
dikaitkan dengan konsep sistem, ada dua ilmu yang erat kaitannya dengan grafika
komputer yaitu pengolahan citra dan visi komputer.
Kaitan Ilmu Grafika
Komputer dengan Ilmu Lain
l Objek yang menjadi masukan atau input untuk grafika
komputer adalah deskripsi misalkan buatlah kursi, buatlah meja dan sebaginya,
dan objek yang menjadi keluaran atau output dari grafika komputer adalah gambar
atau citra dijital sesuai dengan deskripsi masukan.
Beberapa
Penerapan Grafika Komputer
l Entertainment, misalnya dalam pembuatan film animasi.
Terminator II dan Titanic merupakan contoh film non animasi yang memanfaatkan
efek-efek grafika komputer yang sangat canggih.
l Visualisasi Proses, misalnya menggambarkan layout
kinerja proses pabrik, atau proses-proses yang dalam modul ajar. Visualisasi
Hasil Penelitian, seperti menggambar grafik performance, grafik perubahan
bahkan grafik model hasil simulasi dan implementasi program.
l Bersama-sama dengan image processing digunakan sebagai
algoritma identifikasi, seperti yang dilakukan pada kepolisian untuk
menggambarkan wajah seseorang secara 3D dan identifikasi seseorang.
Apakah Beda
Gambar dan Photo
?
l Photo merupakan gambar yang dihasilkan dengan proses
capture dari kegiatan nyata. Hasilnya setiap detail akan muncul, misalnya
jumlah kumis pada kucing sama
l Gambar adalah proses pembentukan yang dilakukan dengan
meniru kegiatan nyata. Hasilnya ada beberapa detail yang tidak dapat
ditampilkan.
Penggambaran
Objek Primitif
- Gambar dapat dijelaskan dengan beberapa cara, bila menggunakan
raster display, gambar ditentukan oleh suatu set intesitas untuk posisi
display pada display.
- Dengan scene tampilan gambar dengan loading array dari
pixel ke dalam buffer atau dengan mengkonversikan scan dari
grafik geometri tertentu ke dalam pola pixel.
- Paket pemrograman grafika dilengkapi dengan fungsi untuk menyatakan
scene dalam bentuk struktur dasar geometri yang disebut output
primitif, dengan memasukkan output primitif tersebut sebagai struktur yang
lebih kompleks.
Penggambaran Titik dan Garis
- Pembentukan titik dilakukan dengan mengkonversi suatu posisi titik
koordinat dengan program aplikasi ke dalam suatu operasi tertentu
menggunakan output.
- Random-scan (vektor) system menyimpan instruksi pembentukan titik pada display
list dan nilai koordinat menentukan posisi pancaran electron ke
arah lapisan fosfor pada layer.
- Garis dibuat dengan menentukan posisi titik diantara titik awal dan
akhir dari suatu garis
Algoritma
Pembentukan Garis
Pada dasarnya, algoritma penggambaran atau pembentukan
garis berusaha mencari suatu cara membentuk garis sedemikian rupa sehingga masalah
jaggies dapat dihindarkan seoptimal mungkin.
Algoritma
Penggabaran Garis Dasar
Persamaan garis
menurut koordinat Cartesian adalah:
y = m.x + b
Dimana :
• m adalah slope (kemiringan) dari garis yang dibentuk
oleh dua titik yaitu (x1,y1) dan (x2, y2).
• Untuk penambahan x sepanjang garis yaitu dx akan
mendapatkan penambahan y sebesar Δy = m. Δx
Contoh :
1. Diketahui dua buah titik A(2, 1) dan B(6, 4). Tentukan
titik-titik dijital yang dilalui
oleh garis yang melalui kedua titik tersebut!
oleh garis yang melalui kedua titik tersebut!
Penyelesaian
:
Hitung nilai
m = 

= 

= 

= 0,75
Latihan :
Dengan
menggunakan algoritma dasar, tentukan koordinat titik-titik dijital
untuk
garis yang dibentuk oleh dua titik sebagai berikut:
a. (-5,5) dan (1,2)
b. (4,3) dan (8,-2)
c. (2,3) dan (5,3)
garis yang dibentuk oleh dua titik sebagai berikut:
a. (-5,5) dan (1,2)
b. (4,3) dan (8,-2)
c. (2,3) dan (5,3)
d. (2,3) dan (2,5)
e. (6,4) dan (2,1)
e. (6,4) dan (2,1)
“Tentukanlah
mana kasus yang tidak dapat diselesaikan dengan
algoritma dasar”.
PENYELESAIAN
a.
(-5,5) dan (1,2)
X1
= -5 Y1= 5
X2=
1 Y2= 2



x2 – x1 1- (-5) 6
Maka
:
x
|
Δx
|
x”
|
y
|
Δy
|
y”
|
x
|
Y
|
-5
|
-
|
-5
|
5
|
-
|
5
|
-5
|
5
|
-5
|
1
|
-4
|
5
|
-0,5
|
4,5
|
-4
|
4,5
|
-4
|
1
|
-3
|
4,5
|
-0,5
|
4
|
-3
|
4
|
-3
|
1
|
-2
|
4
|
-0,5
|
3,5
|
-2
|
4
|
-2
|
1
|
-
|
3
|
-0,5
|
2,5
|
-
|
3
|
-
|
1
|
1
|
2,5
|
-0,5
|
2
|
1
|
2
|

b.
(4,3) dan (8,-2)
X1
= 4 Y1= 3
X2=
8 Y2= -2



x2 – x1 8 - 4 4
maka:
x
|
Δx
|
X”
|
y
|
Δy
|
Y”
|
x
|
y
|
4
|
-
|
4
|
3
|
-
|
3
|
4
|
3
|
4
|
1
|
5
|
3
|
-1,25
|
1,75
|
5
|
2
|
5
|
1
|
6
|
1,75
|
-1,25
|
0,5
|
6
|
1
|
6
|
1
|
7
|
0,5
|
-1,25
|
-0,75
|
7
|
1
|
7
|
1
|
8
|
-0,75
|
-1,25
|
-2
|
8
|
-2
|

c.
(2,3) dan (5,3)
X1
= 2 Y1= 3
X2=
5 Y2= 3



x2 – x1 5 - 2 3
maka
:
x
|
Δx
|
X”
|
y
|
Δy
|
Y”
|
x
|
Y
|
2
|
-
|
2
|
3
|
-
|
3
|
2
|
3
|
2
|
1
|
3
|
3
|
0
|
3
|
3
|
3
|
3
|
1
|
4
|
3
|
0
|
3
|
4
|
3
|
4
|
1
|
5
|
3
|
0
|
3
|
5
|
3
|

d.
(2,3) dan (2,5)
X1
= 2 Y1= 3
X2=
2 Y2= 5



x2 – x1 2 - 2 0
Nb
: Tidak ditemukan titik koordinat.
e.
(6,4) dan (2,1)
X1
= 6 Y1= 4
X2=
2 Y2= 1



x2 – x1 2 - 6 -4
maka
:
x
|
Δx
|
X”
|
y
|
Δy
|
Y”
|
x
|
y
|
6
|
-
|
6
|
4
|
0,75
|
4
|
6
|
4
|
6
|
1
|
7
|
4
|
0,75
|
4,75
|
7
|
5
|
7
|
1
|
8
|
4,75
|
0,75
|
5,5
|
8
|
6
|
8
|
1
|
9
|
5,5
|
0,75
|
6,25
|
9
|
6
|
9
|
1
|
10
|
6,25
|
0,75
|
7
|
10
|
7
|
10
|
1
|
11
|
7
|
0,75
|
7,75
|
11
|
8
|
11
|
1
|
12
|
7,75
|
0,75
|
8,5
|
12
|
9
|
12
|
1
|
13
|
8,5
|
0,75
|
9,25
|
13
|
9
|
Nb : Tidak ditemukan titik koordinat
karena semakin besar penjumlahannya.
Algoritma DDA (Digital Differential Analyzer)
• DDA adalah algoritma pembentukan garis berdasarkan
perhitungan Δx dan Δy.
• Rumus DDA
: y = m. Δ x.
• Garis dibuat
dengan menentukan dua endpoint yaitu titik awal dan titik akhir
Setiap koordinat titik yang membentuk garis
diperoleh dari perhitungan, kemudian dikonversikan menjadi nilai integer.
Langkah-langkah
pembentukan menurut algoritma DDA:
- Tentukan dua titik yang akan dihubungkan.
- Tentukan salah satu titik sebagai titik awal (x0, y0) dan titik
akhir (x1, y1).
- Hitung Δx
= x1 – x0 dan Δ y = y1 – y0
- Tentukan step, yaitu jarak maksimum jumlah penambahan nilai x
maupun nilai y dengan cara :
- Bila nilai |Δy| > |Δx| maka step = nilai |Δy|.
- Bila
tidak maka step = |Δx|
- Hitung penambahan koordinat pixel yaitu x_increment = Δx / step dan y_increment = Δy / step
- Koordinat selanjutnya (x+x_incerement, y+y_increment).
- Posisi pixel pada layer ditentukan dengan pembulatan nilai
koordinasi tersebut
Ulangi step 6 dan 7 untuk menentukan posisi
pixel selanjutnya, sampai x = x1 dan y= y1
Contoh :
Untuk
menggambarkan algoritma DDA dalam pembentukan suatu garis yang
menghubungkan titik (10,10) dan (17,16), pertama-tama ditentukan dx dan dy, kemudian dicari step untuk mendapatkan x_increment dan y_increment.
menghubungkan titik (10,10) dan (17,16), pertama-tama ditentukan dx dan dy, kemudian dicari step untuk mendapatkan x_increment dan y_increment.
PENYELESAIAN :
Δx = x1 – x 0 =
17-10 = 7
Δy = y1 – y0 = 16
-10 = 6
selanjutnya hitung dan bandingkan nilai absolutnya
|Δx| = 7, |Δy| = 6
karena |Δx| > |Δy|, maka step = |Δx| = 7 maka diperoleh :
x_inc = 7/7= 1
y_inc = 6/7 = 0,86
selanjutnya hitung dan bandingkan nilai absolutnya
|Δx| = 7, |Δy| = 6
karena |Δx| > |Δy|, maka step = |Δx| = 7 maka diperoleh :
x_inc = 7/7= 1
y_inc = 6/7 = 0,86

Gambar grafik :

Latihan :
Dengan menggunakan
algoritma DDA, tentukan koordinat titik-titik dijital untuk
garis yang dibentuk oleh dua titik sebagai berikut:
a. (-5,5) dan (1,2)
b. (4,3) dan (8,-2)
c. (2,3) dan (5,3)
d. (2,3) dan (2,5)
e. (6,4) dan (2,1)
garis yang dibentuk oleh dua titik sebagai berikut:
a. (-5,5) dan (1,2)
b. (4,3) dan (8,-2)
c. (2,3) dan (5,3)
d. (2,3) dan (2,5)
e. (6,4) dan (2,1)
Catatan:
Apakah semua soal dapat diselesaikan ?
PENYELESAIAN
a.
(-5,5) dan (1,2)
X0
= -5 Y0= 5
X1=
1 Y1= 2
Ø Δx = x1 – x0
Δ y = y1 – y0
= 1 – (-5) = 2 – 5
= 6 = -3
Ø Δ y = 6
Ø x_increment = Δx / step =
6/6 =1
y_increment = Δy
/ step
= -3/6 = -0,5
Ø tabel
k
|
x
|
y
|
x
|
y
|
-
|
-
|
-
|
-5
|
5
|
0
|
-4
|
4,5
|
-4
|
4
|
1
|
-3
|
4
|
-3
|
4
|
2
|
-2
|
3,5
|
-2
|
3
|
3
|
-1
|
3
|
-1
|
3
|
4
|
0
|
2,5
|
0
|
2
|
5
|
1
|
2
|
1
|
2
|

b.
(4,3) dan (8,-2)
X0
= 4 Y0= 3
X1=
8 Y1= -2
Ø Δx = x1 – x0
Δ y = y1 – y0
= 8 – 4 = (-2) – 3
= 4 = -5
Ø Δ y = 4
Ø x_increment = Δx / step =
4/4 =1
y_increment = Δy
/ step
= -5/4 = -1,25
Ø tabel
k
|
x
|
y
|
x
|
y
|
-
|
-
|
|
4
|
3
|
0
|
5
|
1,75
|
5
|
2
|
1
|
6
|
0
|
6
|
0
|
2
|
7
|
-1,75
|
7
|
-2
|
3
|
8
|
-3
|
8
|
-3
|
4
|
9
|
-4,25
|
9
|
-4
|
5
|
10
|
-5,5
|
10
|
-5
|
6
|
11
|
-6,75
|
11
|
-6
|
Nb
: Tidak ditemukan titik koordinat.
c.
(2,3) dan (5,3)
X0
= 2 Y0= 3
X1=
5 Y1= 3
Ø Δx = x1 – x0
Δ y = y1 – y0
= 5 – 2 = 3 – 3
= 3 = 0
Ø Δ y = 3
Ø x_increment = Δx / step =
3/3 = 1
y_increment = Δy
/ step
= 0/3 = 0
Ø tabel
k
|
x
|
y
|
x
|
y
|
-
|
-
|
-
|
2
|
3
|
0
|
3
|
3
|
3
|
3
|
1
|
4
|
3
|
4
|
3
|
2
|
5
|
3
|
5
|
3
|

d.
(2,3) dan (2,5)
X0
= 2 Y0= 3
X1=
2 Y1= 5
Ø Δx = x1 – x0
Δ y = y1 – y0
= 2 – 2 = 5 – 3
= 0 = 2
Ø Δ y = 2
Ø x_increment = Δx / step =
0/2 = 0
y_increment = Δy
/ step
= 2/2 = 1
Ø tabel
k
|
x
|
y
|
x
|
y
|
|
|
|
2
|
3
|
0
|
2
|
4
|
2
|
4
|
1
|
2
|
5
|
2
|
5
|

e.
(6,4) dan (2,1)
X0
= 6 Y0= 4
X1=
2 Y1= 1
Ø Δx = x1 – x0
Δ y = y1 – y0
= 2 – 6 = 1 – 4
= -4 = -3
Ø Δ y = -4
Ø x_increment = Δx / step =
-3/-4 =0,75
y_increment = Δy
/ step
= -4/-4 = 1
Ø tabel
k
|
x
|
y
|
x
|
y
|
|
|
|
6
|
4
|
0
|
7
|
4,75
|
7
|
5
|
1
|
8
|
5,55
|
8
|
5
|
2
|
9
|
6,25
|
9
|
6
|
3
|
10
|
7
|
10
|
7
|
4
|
11
|
7,75
|
11
|
8
|
Nb
: Tidak ditemukan titik koordinat karena penjumlahan semakin besar.
Algoritma
Bressenham
l
Bressenham
mengembangkan algoritma klasik yang lebih menarik.
l
Hanya
menggunakan perhitungan matematika dengan bilangan integer.
l
Tidak
perlu membulatkan nilai posisi setiap pixel setiap waktu.
l
Algoritma
Bressenham disebut juga midpoint line algorithm
l
Algoritma
konversi penambahan nilai integer yang juga dapat diadaptasi untuk
menggambarkan sebuah lingkaran .
Langkah-langkah
Algoritma Bressenham :
l Tentukan dua titik yang akan dihubungkan dalam
pembentukan garis.
l Tentukan salah satu titik di sebelah kiri sebagai
titik awal, yaitu (x0,y0) dan titik lainnya sebgai titik
akhir (x1,y1).
l Hitung dx,dy,2dx dan
2dy-2dx.
l Hitung Paramater P0=2dy-dx
l Untuk setiap Xk sepanjang jalur garis,
dimulai dengan k=0, bila pk <0,>k+1, yk), dan
Pk+1 = Pk+2dybila tidak, maka titik
selanjutnya adalah (xk+1,yk+1), dan Pk+1 =
Pk+2dy-2dx
l Ulangi langkah no 5 untuk menentukan posisi pixel
selanjutnya, sampai x = x1 dan y = y1.
Alir Algoritma
Brenssham

Contoh Soal :
l
Diketahui
sebuah sumbu dengan titik koordinat (2,2) dan (6,4). Gambarkan garis tersebut
dengan menggunakan Algoritma Bresenham.
l
Langkah
1 : menentukan titik awal dan titik akhir (x0,y0) dan (x1,y1)

l Langkah II :
Hitung Dx, Dy,
dan 2Dy – 2Dx.

l Langkah III : Hitung Parameter
pk = 2Dy – Dx..

l Langkah IV : Bandingkan
if pk < 0 (xk+1, yk) else (xk +1, yk +1).
A
< 0 = 2 Dy
B
> 0 = 2 Dy - 2Dx
Pk (+)= Pk
+ B
Pk (-)= Pk
+ A





Tabel
akhir

Contoh
2:
l Titik Awal P1 (15,6) dan titik akhir P2 (28,13)
l Hitung Dx,Dy, 2Dy-2Dx
l Dx=x2-x1=28-15=13
l Dy=y2-y1=13-6=7
l 2Dy-2Dx =2(7)-2(13)=14-26=-12
l Hitung Parameter pk=2Dy-Dx
2(7)-(13)=14-13=1
A<0=2Dy=2(7)=14
B>0=2Dy-2Dx=2(7)-2(13)=14-26=-12
Tabel
Titik dengan Brenssham
k
|
Pk
|
X
|
y
|
-
|
-
|
15
|
6
|
1
|
1
|
16
|
7
|
2
|
-11
|
17
|
7
|
3
|
3
|
18
|
8
|
4
|
-9
|
19
|
8
|
5
|
5
|
20
|
9
|
6
|
-7
|
21
|
9
|
7
|
7
|
22
|
10
|
8
|
-5
|
23
|
10
|
9
|
9
|
24
|
11
|
10
|
-3
|
25
|
11
|
11
|
11
|
26
|
12
|
12
|
-1
|
27
|
12
|
13
|
13
|
28
|
13
|
A
= 14
B
= -12
Aturan
Bresenham :
Jika
Pk bernilai positif (+), maka tambahkan hasilnya dengan B dan nilai x dan y
ditambah 1.
Jika
Pk bernilai negatif (-), maka tambahkan hasilnya dengan A dan nilai x ditambah
1, sedangkan y ditambah 0 (tetap).
Grafik
Akhir
