Anda di halaman 1dari 35

CLIPPING 2 DIMENSI

Imelda Sri Dumayanti, S.Si.m M.Kom


TAMPILAN 2 DIMENSI
Menampilkan gambar 2 dimensi ke
output device (misal : monitor)
S i s te m koordinat (misal : sistem
koordinat c ar tes i an ) d a p a t d i g u n a k a n
untuk mendefinisikan sebuah gambar
 Pada gambar 2 dimensi, tampilan dipilih
dengan cara menentukan sebuah sub area
dari total area gambar
 Bagian gambar di dalam suatu area yang
ditentukan kemudian dipetakan pada
sistem koordinat
THE VIEWING PIPELINE

 Window
• Area koordinat dunia (world-coordinate) yang dipilih
untuk ditampilkan
 mendefinisikan apa yang ditampilkan
 Viewport
• Area dari display device (misal:monitor) dimana
window dipetakan.
 Mendefinisikan dimana harus ditampilkan
 Viewing transformation
• Pemetaan bagian dari koordinat dunia ke koordinat
device.
PENGGAMBARAN 2 DIMENSI
CLIPPING 2 DIMENSI

 Tidak semua garis harus digambar di area


gambar karena garis-garis yang tidak terlihat di
area gambar seharusnya tidak perlu digambar.

 Metode u n t u k menentukan bagian garis yan g


perlu digambar a t a u tidak perlu digambar
disebut clipping.

 C l i p p i n g j u ga d a p a t d i a r t i ka n sebagai s u a t u
tindakan untuk memotong suatu objek dengan
bentuk tertentu.
KETAMPAKAN GARIS
 Posisi
ketampakan garis terhadap area
gambar (viewport) :

Garis yang terlihat seluruhnya (fully visible) :


garis tidak perlu dipotong

Garis yang hanya terlihat sebagian (partially


visible) : garis yang perlu dipotong

G aris yang tidak terlihat sama sekali (fully


invisible) : garis tidak perlu digambar
KETAMPAKAN GARIS
ALGORITMA COHEN-
SUTHERLAND

 Algoritma Cohen-Sutherland merupakan metode


untuk menentukan apakah sebuah garis perlu
dipotong atau tidak dan menentukan titik potong
garis.

 Area gambar didefinisikan sebagai sebuah area


segiempat yang dibatasi oleh xmin dan
xmax,ymin dan ymax.
ALGORITMA COHEN-
SUTHERLAND
ALGORITMA COHEN-
SUTHERLAND
 Setiap ujung garis diberi kode 4 bit dan disebut
sebagai region code. Region code ditentukan
berdasarkan area dimana ujung garis tersebut berada.
 Susunan region code :
ALGORITMA COHEN-
SUTHERLAND
C ONTOH
 J i ka diketahui area gambar ditentukan dengan
xmin=1, ymin = 1 dan xmax=4, ymax=5 dan 2
garis :
P (–1, –2) – (5,6)
Q (–1,5) – (6,7)
C ONTOH
 maka untuk menentukan region code dari masing-masing
garis tersebut adalah :
Garis P
 Ujung garis P (–1, –2)
L = 1, karena x < xmin yaitu –1 < 1
R = 0 , karena x < xmax yaitu –1 < 4
B = 1 , karena y < ymin yaitu –2 < 1
T = 0 , karena y < ymax yaitu –2 < 5
 sehingga region code untuk ujung P (–1, –2) adalah 0101
 Ujung garis P (5, 6)
L = 0 , karena x > xmin yaitu 5 > 1
R = 1 , karena x > xmax yaitu 5 > 4
B = 0 , karena y > ymin yaitu 6 > 1
T = 1 , karena y > ymax yaitu 6 > 5
 sehingga region code untuk ujung P (5, 6) adalah 1010
 Karena region code kedua ujung garis tidak 0000 maka
garis P kemungkinan bersifat partialy invisible dan perlu
CGaOrNisTQOH
 Ujung garis Q (–1, 5)
 L = 1 , karena x < xmin yaitu –1 < 1
 R = 0 , karena x < xmax yaitu –1 < 4
 B = 0 , karena y > ymin yaitu 5 > 1
 T = 0 , karena y = ymax yaitu 5 = 5
 sehingga region code untuk ujung Q (–1, –2) adalah
0001
 Ujung garis Q (6, 7)
 L = 0 , karena x > xmin yaitu 6 > 1
 R = 1 , karena x > xmax yaitu 6 > 4
 B = 0 , karena y > ymin yaitu 7 > 1
 T = 1 , karena y > ymax yaitu 7 > 5
 sehingga region code untuk ujung Q (5, 6) adalah 1010
 Karena region code kedua ujung garis tidak 0000
maka garis Q kemungkinan bersifat partialy invisible
dan perlu dipotong.
M E N E N T U K A N T ITIK P O T O N G
 Langkah berikutnya menentukan lokasi titik potong
antara garis tersebut dengan batas area gambar.
 Titik potong dihitung berdasarkan bit=1 dari region
code dengan menggunakan panduan tabel berikut :
M E N E N T U K A N T ITIK P O T O N G
 dengan xp1,xp2,yp1, dan yp2 dihitung menggunakan
persamaan berikut ini :
M E N E N T U K A N T ITIK P O T O N G
Bergantung pada lokasi ujung garis maka akan
diperoleh 2,3,atau 4 titik potong seperti gambar berikut:

Bila ditemukan titik potong lebih dari 2 pada 1 ujung maka


pilih titik potong yang ada di dalam area gambar.
C ONTOH
Untuk contoh sebelumnya titik potong pada garis P
adalah :
Region Bit B = 1 titik (1.25 , 1) Region Bit R = 1
titik (4, 4.7)
C ONTOH
 Cara mencari :
 Titik potong garis P (-1,-2) – (5,6)
C ONTOH
 Region code 0101 di titik (-1,-2) :
L = 1 → yp1 = y1 + m * (xmin – x1) = -2 + (8/6) * (1-(-1))
yp1 = 0,67
 Titik potongnya adalah (xmin,yp1) = (1, 0.67)
C ONTOH

 Titik potongnya adalah (xp1,ymin) = (1.25, 1)


C ONTOH
 Region code 1010 di titik (5,6) :
R = 1 → yp2 = y1 + m * (xmax – x1) = 6 + (8/6) * (4-5)
yp2 = 4,7
 Titik potongnya adalah (xmax,yp2) = (4, 4.7)
C ONTOH

 Titik potongnya adalah (xp2,ymax) = (4.25, 5)


C ONTOH
 Ada 4 titik potong pada garis P yaitu (1, 0.67),
(1.25,1), (4, 4.7), (4.25, 5). Pilih titik potong yang
terdapat dalam viewport yaitu (1.25,1) dan (4, 4.7).
ALGORITMA CLIPPING GARIS LIANG-
BARSKY
 Liang-Barsky menemukan algoritma clipping garis yang lebih cepat.
C l i p p i n g yang lebih cepat dikembangkan berdasarkan persamaan
parametrik dari segmen garis dapat ditulis dalam bentuk:

 Dimana dx = x2 – x1 dan dy = y2-y1. Dimana nilai u Є [0,1]. Menurut


Liang dan Barsky bentuk pertidaksamaan sebagai berkut: xwmin <=
x1 + u.dx <= xwmax ywmin <= y1 + u.dy <= ywmax
Dengan

u.pk <= qk, k=1,2,3,4


 Dimana parameter p dan q ditentukan sebagai
berikut:

k = 1 (Kiri): p1 = -dx, q1= x1-xwmin


k = 2 (Kanan): p2 = dx, q2= xwmax – x1
k = 3 (Bawah): p3 = -dy, q3= y1-ywmin
k = 4 (Atas): p4 = dy, q4= ywmax-y1
 Garis yang sejajar dengan salah satu batas clipping
mempunyai pk = 0 untuk nilai k=1,2,3,4 yaitu left,
r i g h t , bottom, d a n top. U n t u k setiap n i l a i k , j u g a
diperoleh qk < 0, maka garis sepenuhnya diluar batas
clipping. Bila qk>=0, maka garis didalam dan sejajar
batas clipping.
 Bila pk < 0, garis memotong batas clipping dari luar
ke d a l a m , d a n bila p k > 0 , ga r i s memotong b a t a s
clipping dari dalam ke luar. U n t u k nilai pk yang
tidak sama dengan 0, nilai u dapat diperoleh dengan

u = qk / pk
 U n t u k setiap ga r i s , d a p a t d i h i t u n g n i l a i d a n
parameter u1 dan u2 yang menentukan posisi
garis dalam bidang clipping. Nilai u1
diperlihatkan dengan b a t a s cl i p p i n g d i m a n a
ga r i s memotong b a t a s c l i p p i n g d a r i l u a r ke
dalam (p<0)
rk = qk / pk
 Dengan nilai u1 adalah nilai maksimum dari nilai 0
dan bermacam-macam nilai r. S e b a l i k nya nilai u2
ditentukan dengan memeriksa batas dimana clipping
dipotong oleh garis dari dalam keluar (p > 0). nilai rk
dihitung u n t u k setiap batas clipping, dan nilai u2
merupakan nilai m i n i m u m dari sekumpulan n ilai
yang terdiri dari 1 dan nilai r yang dihasilkan. Bila
u1 > u2, maka garis sepenuhnya berada di luar clip
window dan dapat dihilangkan; sebaliknya bila tidak
ujung dari garis yang di clip dihitung dari dua nilai
parameter u.

Untuk (pi < 0) t1 = Max (rk)


Untuk (pi > 0) t2 = Min (rk)
J i k a t1 < t2 cari nilai ujung yang baru.

t1  ( x1 + dx * t1 , y1 + dy * t1) titik awal garis yang baru


t2  ( x1 + dx * t1 , y1 + dy * t1) titik ujung garis yang baru

Algoritma L i a n g - B a r s k y lebih efisien dibandingkan


dengan Cohen-Sutherland karena perhitungan titik
potong dihilangkan
CONTOH PERHITUNGAN
D i ke t a h u i t i t i k gar i s P1(-1,-2) d a n P2(2,4) d a n
viewport xl = 0, xr = 1, yb = 0 dan yt = 1. Tentukan
endpoint baru.
J AWA B :
P1(-1,-2) , P2(2,4)
xL =0, xR=1, yB = 0, yT =1
dx= x2 – x1 dy = y2 – y1
= 2 – (-1) = 3 = 4 – (-2) = 6
p1 = -dx , q1 = x1 – xL  q1/p1 = -1/-3
= -3 = -1- 0 = -1 = 1/3
P2 = dx , q2 = xR – x1  q2/p2 = 2/3
=3 = 1- (-1) = 2
P3 = -dy , q3 = y1 - yB  q3/p3 = -2/-6
= -6 = -2- 0 = -2 = 1/3
P4 = dy , q4 = yT - yl q4/p4 = 3/6
=6 = 1- (-2)= 3 = 1/2
Untuk (pi < 0 ) T1 = “Max” (1/3, 1/3, 0) = 1/3
Untuk (pi > 0 ) T2 = Min (2/3, 1/2, 1) = ½
T1 < T2
Perhitungan ujung baru
T1 = 1/3
X1’ = x1 + dx * t1
= -1 + ( 3 * 1/3) = -1 + 1 = 0
Y1’ = y1 + dy * t1
= -2 + 6 * 1/3 = -2 + 2 = 0
(X1’,Y1’) = (0,0)
T2 = 1/2
X2’ = x1 + dx * t2
= -1 + ( 3 * 1/2) = 1/2
Y2’ = y1 + dy * t2
= -2 + 6 * 1/2= 1
(X2’,Y2’) = (1/2,1)
L AT I H A N

1. Diketahui titik awal P (1,1) dan titik akhir di Q


(10,10), dengan area clipping x m i n = 1, y m i n =1,
xmax= 7 dan ymax=7. Selesaikan masalah ini
dengan clipping CohenSutherland.
2. Berdasarkan soal no 1 l a k u k a n cl i p p i n g
menggunakan algoritma Liang-Barsky dimana
xl=1, xr= 7, yb = 1 dan yt = 7.

Anda mungkin juga menyukai