gkom_3_sistemkoordinat

Download Report

Transcript gkom_3_sistemkoordinat

Sistem Koordinat
Komputer Grafik
Rudy Gunawan
Sistem Koordinat

Pada komputer grafik ada 3 macam sistem koordinat yang
harus kita perhatikan :

• Koordinat nyata

• Koordinat sistem (koordinat cartesian)

• Koordinat tampilan / layar

KOORDINAT NYATA (WORLD COORDINATE)
Adalah koordinat yang pada saat itu objek yang bersangkutan
berada, misal koordinat sebuah kursi


Tergantung dari letak kursi itu ada dimana, bagaimana
letaknya.
Dalam implementasinya koordinat nyata bisa dikatakan
sebagai WINDOW yaitu area di dunia nyata yang
menunjukkan bagian yang dilihat oleh pemirsa.
Kordinat Cartesian



Setiap titik yang digambar
dengan teknik point-plotting
lokasinya ditentukan berdasarkan
sistem koordinat cartesian.
Setiap titik ditentukan lokasinya
melalui pasangan nilai x dan y.
Dimana nilai koordinat x
bertambah positif dari kiri ke
kanan dan nilai y bertambah
positif dari bawah ke atas.
KOORDINAT TAMPILAN/LAYAR
•
•
•
Arah sumbu koordinat kartesian
berkebalikan dengan yang
digunakan di layar komputer.
Pada layar komputer sumbu x
bertambah positif ke kanan dan
sumbu y bertambah positif ke
bawah.
Seperti pada gambar berikut jika
sebuah titik pada koordinat
cartesian digambar ulang ke layar
komputer maka secara visual
lokasi titik tersebut akan berubah.
Dalam implementasinya koordinat tampilan/layar bisa dikatakan sebagai
VIEWPORT yaitu area di layar monitor yang menunjukkan dimana
WINDOW akan ditampilkan.
Untuk memetakan sebuah titik di window ke titik di viewport digunakan
rumus :
xv = s x * xw + t x
yv = s y * yw + t y
Dengan
VR − VL
Sx = ------------------WR − WL
VL * WR − VR * WL
Tx = -----------------------WR − WL
VT − VB
Sy = -------------------------WT − WB
VB * WT − VL * WB
Ty = --------------------------WT − WB
Garis
•
•
Garis merupakan salah satu bentuk dasar
dari gambar. Sebuah garis dalam grafika
disebut segment.
Garis dibuat dengan menentukan posisi titik
diantara titik awal dan akhir dari suatu garis,
yaitu (x1,y1) dan (x2,y2).
(x2,y2)
(x1,y1)
Kuadran Garis
•
Berdasarkan arah garis maka sebuah garis dapat di salah
satu area (kuadran). Tanda panah pada arah garis
menunjukkan lokasi (x2,y2)
II
I
III
IV
• Pada gambar diatas garis 1 terletak pada kuadran I, garis 2 di
kuadran III, garis 3 di kuadran IV, garis 4 di kuadran II. Jadi
kuadran garis tidak berhubungan dengan nilai negatif maupun
positif tetapi menyatakan arah garis.
(x2,y2)
(x2,y2)
K.2
(x1,y1)
K.4
K.1
(x1,y1)
(x1,y1)
(x1,y1)
K.3
(x2,y2)
(x2,y2)
Algoritma Garis DDA
DDA (Digital Differential Analyzer)
• Merupakan salah satu algoritma menggambar
garis yang sederhana.
• Gradien garis :
y 2 − y1
m = -----------x 2 − x1
Bentuk Garis
a. cenderung mendatar
Gradien bernilai 0 < m < 1
Pixel bertambah 1 pada sumbu x dan bertambah
sebesar m pixel pada sumbu y
b. cenderung tegak
Gradien bernilai m > 1
Pixel bertambah 1 pada sumbu y dan bertambah
sebesar 1/m pixel pada sumbu x
c. miring 45 o
Gradien bernilai m = 1
Pixel bertambah 1 pada sumbu x dan bertambah
Listing algoritma DDA :
x = x1 ; y = y1;
m = (y2 – y1) / (x2 – x1)
Algoritma DDA
jika m > 0 dan m < 1 maka
selama x <= x2 maka
gambar pixel pada (x,y)
x = x+1
y =y+m
akhir selama x <= x2
tetapi jika m > 1 maka
selama y <= y2 maka
gambar pixel pada (x,y)
x = x + 1/m
y=y+1
akhir selama y <= y2
tetapi jika m = 1 maka
selama x <= x2 maka
Gambar pixel pada (x,y)
X = x+1
Y=y+1
akhir selama x <= x2
Kelemahan algoritma DDA :
hanya dapat digunakan untuk nilai x1 < x2 dan y1 < y2 atau garis yang berada di kuadran I
ALGORITMA GARIS
BRESENHAM
Dikembangkan oleh Bresenham
Berdasarkan selisih antara garis yang diinginkan terhadap
setengah ukuran dari pixel yang sedang digunakan
Algoritma Bresenham untuk dx > dy dan untuk dx < dy
dimana :
–
dx = X2-X1
–
dy = Y2-Y1
Algoritma Bresenham
untuk dx > dy
Algoritma Bresenham
untuk dx < dy
Hitung lokasi 5 titik pertama yang
dilewati oleh garis (10,30) –
(256,147) menggunakan algoritma
bresenham. Gambarkan hasil
perhitungannya.
Garis (10,30) – (256,147)
dx = (x2 – x1) = (256 – 10) = 246
dy = (y2 – y1) = (147 – 30) = 117
gunakan algoritma untuk dx > dy
e = 2 * dy – dx = 2 * 117 – 246 = -12
d1 = 2 * dy = 2 * 117 = 234
d2 = 2 * (dy – dx) = 2 * (117 – 246) = -
Lingkaran
•
•
•
•
Untuk menggambar sebuah lingkaran hanya diperlukan
menggambar titik-titik pada kuadran pertama saja,
sedangkan titik-titik pada kuadran lain dapat diperoleh
dengan mencerminkan titik-titik pada kuadran pertama.
Dari gambar dibawah ini titik pada oktan pertama dapat
dicerminkan melalui sumbu Y=X untuk memperoleh titik-titik
pada oktan kedua dari kuadran pertama.
Titik-titik pada kuadran pertama dicerminkan melalui sumbu
X = 0 untuk memperoleh titik-titik pada kuadran kedua.
Gambar berikut menunjukkan menggambar lingkaran
dengan refleksikan octan pertama.
Algoritma Lingkaran
BRESENHAM
xi = 0 ; yi = R
Ulangi sampai yi = 0
Hitung ∆i
Gambar titik di (xi ,yi)
Jika ∆i < 0 maka hitung δ
Jika δ < = 0 maka xi = xi +1
Jika δ > 0 maka xi = xi +1 dan yi = yi – 1
Jika ∆i > 0 maka hitung δ’
Jika δ’ < = 0 maka yi = yi -1
Jika δ’ > 0 maka xi = xi +1 dan yi = yi – 1
Jika ∆i = 0 maka xi = xi +1 dan yi = yi – 1
Rumus :
∆i = (xi +1)2 + (yi –1)2 – R2
δ = | (xi +1)2 + (yi)2 – R2 | – | (xi +1)2 + (yi – 1)2 – R2 |
δ’ = | (xi)2 + (yi – 1)2 – R2 | – | (xi +1)2 + (yi – 1)2 – R2 |
Posisi Perkiraan
Berikut
x+1,y-1
Posisi awal
x,y
Cek harusnya
posisi baru juga
sama dengan R.
(xi +1)2 + (yi –1)2 = R2
Y
R
R
X
Jika R baru lebih kecil, bandingkan dengan
nilai y tidak ditambah
δ = | (xi +1)2 + (yi)2 – R2 | – | (xi +1)2 + (yi – 1)2 – R2 |
Jika R posisi baru lebih besar,bandingkan dengan
Nilai X tidak ditambah.
δ’ = | (xi)2 + (yi – 1)2 – R2 | – | (xi +1)2 + (yi – 1)2 – R2 |
2 + (yi –1)2 – R2
∆i
=
(xi
+1)
Jika = 0 artinya tepat sama dengan R
Jika > 0 artinya posisi baru lebuh besar dari R
Jika < 0 artinya posisi baru lebih kecil dari R
Keputusan
Posisi baru perkiraan
Jika Δ I > 0
0
R
Pilih posisi ini jika
lebih dekat dengan harga R
δ' < 0
Posisi baru perkiraan
Jika Δ I < 0
0
R
Pilih posisi ini jika
lebih dekat dengan harga R
δ<0
Algoritma Lingkaran
BRESENHAM
Contoh :
Jika diketahui R = 5 dan titik terakhir yang dipilih adalah (0,5) hitung
koordinat
yang harus dipilih.
Jawab :
xi = 0 , yi = 5
∆i = (xi +1)2 + (yi –1)2 – R2
= (0 +1)2 + (5 –1)2 – 52
= 1 + 16 – 25 = -8
karena ∆i < 0 maka
δ = | (xi +1)2 + (yi)2 – R2 | – | (xi +1)2 + (yi – 1)2 – R2 |
= | (0 +1)2 + (5)2 – 52 | – | (0 +1)2 + (5 – 1)2 – 52 |
= | 1 | – | –8 | = 1 – 8 = – 7
•
karena δ < 0 maka koordinat titik berikutnya adalah (xi +1, yi) = (0+1,
5) = (1,5