laporan komputer grafik
-
Upload
hammam-abdurrahman -
Category
Documents
-
view
87 -
download
3
description
Transcript of laporan komputer grafik
Laporan Komputer Grafik
Disusun oleh:
Ade Irawan M0510001
Andreas Andi Wijaya M0510007
Dewi Prasetyan D M0510018
Guruh Ari Wibowo M0510026
Wachid Daga S M0510045
JURUSAN TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SEBELAS MARET
2013
I. DASAR TEORIA. Sistem Koordinat 2 Dimensi
Sistem koordinat digunakan untuk membedakan posisi atau lokasi
suatu titik. Sistem koordinat yang sering digunakan adalah sistem koordinat
cartesian dua dimensi seperti yang digambarkan pada gambar 2.1. Dalam
sistem koordinat cartesian dua dimensi digunakan 2 besaran (x,y). Sumbu x
digunakan untuk memproyeksikan panjang dan sumbu y untuk tinggi.
Sistem Koordinat Cartesian dua dimensi, dengan sumbu x dan y
1. Titik / Pixel
Titik atau pixel (singkatan dari picture element) merupakan elemen
penyusun terkecil dari suatu objek dalam grafika komputer. Titik didefinisikan
pada suatu posisi (x,y) dalam koordinat cartesian. Gambar 2.2 menunjukkan
sebuah titik pada posisi (3,4) dalam koordinat cartesian.
Titik memiliki atribut yaitu warna dari titik tersebut. Selain itu, titik
juga memiliki property yang terdiri dari posisi atau koordinat (x,y) titik
tersebut.
2. GarisGaris merupakan persamaan matematika yang disusun Titik dengan
koordinat cartesian (3,4) oleh sekumpulan titik. Suatu titik merupakan
penyusun dari garis jika koordinat titik tersebut memenuhi persamaan garis y
= mx + c. Gambar 2.3 menunjukkan sebuah garis dengan koordinat titik – titik
ujung (2,2) dan (5,4).
Garis dengan koordinat titik – titik ujung (2,2) dan (5,4)
Garis memiliki atribut yang terdiri dari warna, tebal dan jenis dari garis
tersebut. Garis juga memiliki property yang terdiri dari koordinat dari titik –
titik ujung garis tersebut (x1,y1) dan (x2,y2).
B. Transformasi 2 DimensiTransformasi dapat dilakukan terhadap sebuah objek grafis dengan
berbagai cara tanpa menambahkan komponen baru apapun pada objek grafis
tersebut. Ada banyak cara untuk melakukan transformasi objek grafis, akan
tetapi terdapat beberapa cara yang umum yaitu:
1. Translasi
Pemindahan objek ke lokasi baru tanpa mengubah bentuk, ukuran, dan
orientasinya.
2. Rotasi
Pemutaran objek/ rotasi terhadap titik tertentu tanpa mengubah bentuk dan
ukurannya.
3. Scalling
Perbesaran/ pengecilan objek, yang mana objek diskalakan menggunakan
faktor yang sama baik secara horizontal maupun vertical sehingga
proporsinya tetap/ bisa menggunakan faktor yang berbeda yang akan
menyebabkan objek menjadi lebih tinggi/ pendek/ tipis/ tebal.
Translasi dan rotasi disebut juga sebagai rigid body transformation
yaitu transformasi yang hanya mengubah posisi objek, tanpa mengubah
bentuknya.
1. Translasi
Translasi merupakan transformasi paling sederhana yang dapat
diterapkan pada suatu objek grafis. Mudahnya, translasi adalah perpindahan
objek grafis dari satu tempat ke tempat lain tanpa mengubah tampilan dan
orientasi. Untuk menghasilkan translasi sebuah objek grafis, kita
menambahkan konstanta Tx pada koordinat x dan konstanta Ty pada koordinat
Y formula ini diterapkan pada semua titik pada objek yang akan
ditranslasikan.
Gambar:
Formula untuk mentranslasikan suatu titik (x, y) ke posisi baru (x’, y’)
adalah sebagai berikut:
Pada prakteknya untuk mentranslasikan objek grafis tentu saja kita
tidak harus menghitung semua titi pada objek tersebut, tetapi cukup dihitung
titik awal dan akhir saja kemudian gambarkan garis dari kedua titik tersebut.
Contoh kedua untuk memindahka lingkaran cukup menghitung titik pusat
lingkaran kemudian dengan menggunakan algoritma penggambaran lingkaran,
lingkaran dengan posisi baru bisa dibentuk.
Perhitungan translasi bisa juga dengan menggunakan matriks transformasi
sebagai berikut:
Contoh soal 1:
Sebuah garis dengan koordinat A(10, 10) dan B(15, 30) ditranslasikan dengan
translasion vector (10, 20).
Jawab:
Titik A:
Xa’ = Xa + Tx = 10 + 10 = 20
Ya’ = Ya + Ty = 10 + 20 = 30
Hasil translasi titik A = (20, 30)
Titik B:
Xb’ = Xb + Tx = 15 + 10 = 25
Yb’ = Yb + Ty = 30 + 20 = 50
Hasil translasi titik B = (25, 50)
Sehingga garis baru yang terbentuk adalah garis dengan koordinat titik Ai(20,
30) dan Bi (25, 50)
Perhitungan translasi ini juga bisa menggunakan matriks berikut:
Untuk titik A
Untuk titik B
2. Rotasi
Rotasi suatu image adalah memutar objek terhadap titik tertentu pada
bidang xy. Bentuk dan ukuran objek tidak berubah. Untuk melakukan rotasi
perlu diketahui sudut rotasi ϴ dan pivot poin (Xp, Yp) atau titik rotasi dimana
objek dirotasi. Nilai positif dari sudut rotasi menentukan arah rotasi
berlawanan dengan jarum jam dan sebaliknya nilai negative akan memutar
objek searah jarum jam.
Gambar:
Rotasi yang paling seerhana adalah rotasi dengan pivot point di titik
pusat koordinat system yaitu (0,0). Pada gambar 5. Xx terlihat titik (x,y)
dirotasi terhadap titik pusat koordinat system dengan sudut ϴ sudut terhadap
sumbu x adalah sebesar Ф. Dengan menggunakan trigonometri dasar dapat
dihitung bahwa:
Titik hasil rotasi yaitu x’ dan y’ dapat ditentukan sebagai berikut:
x’ = r cos (Ф + ϴ)
= r cos Ф cos ϴ - r sin Ф sin ϴ
= x cos ϴ - y sin ϴ
y’ = r sin (Ф + ϴ)
= r cos Ф sin ϴ + r sin Ф cos ϴ
= x sin ϴ + y cos Ф
Maka jika titik x, y dirotasi terhadap (0,0) dengan sudut ϴ adalah
Jika pivot point berada di titik (xp, yp) maka rotasi titik dapat dirumuskan
sebagai berikut:
a. Translasi tx = -xr & ty = -yr
b. Rotasi sebesar ϴ
c. Translasi tx = xr & ty = yr
Dengan menggunakan matriks rotasi dapat dirumuskan sebagai berikut:
Contoh Rotasi:
Hitung apabila titik (2, 7) dirotasi sebesar 90º terhadap titik (0,0)
Jawab:
3. Scalling (Penskalaan)
Scalling atau penskalaan adalah proses untuk mengubah ukuran objek,
dengan cara mengubah jarak setiap titik pada objek terhadap titik acuan. Objek
dapat diskalakan dengan arah horizontal maupun vertical dengan cara
mengalikan koordinat tiap objek dengan faktor konstanta.
Pada proses ini perlu dispesifikasikan dua hal yaitu:
- Faktor penskalaan: sx & sy real: (0.N)
- Titik acuan (xf,yf)
Jenis penskalaan ada dua yaitu uniform dan diferensial. Penskalaan
uniform terjadi bila faktor vertical sama dengan horizontal, sedangkan
diferensial jika kedua faktor tersebut berbeda.
Penskalaan terhadap titik (0,0) dapat dirumuskan sebagai berikut, dengan
konsekuensi bentuk dan posisi objek berubah. Jika 0 < S < 1: lebih dekat ke
(0,0), S = 1 ukuran tetap, 1 < S: lebih jauh dari (0,0).
Untuk penskalaan terhadap titik (Xp, Yp) dapat dirumuskan sebagai berikut:
Penskalaan uniform untuk polygon, lingkaran dan elips, dapat dilihat pada
table berikut:
Seperti transformasi sebelumnya penskalaan juga dapat
dipresentasikan dalam bentuk persamaan matriks.
Contoh Scalling:
Persegi panjang dengan koordinat (4,2), (10,2), (4,4), (10,4) Scalling factor ½
Koordinat persegi panjang sesudah transformasi (2,1), (5,1), (2,2), (5,2)
4. Refleksi
Refleksi adalah transformasi yang membuat mirror atau pencerminan
dari suatu objek grafis. Refleksi disusun relative terhadap sumbu refleksi.
Contoh refleksi terhadap garis y=-x dapat dilihat pada gambar berikut.
Refleksi terhadap sumbu x dapat dinyatakan dengan matriks :
Refleksi terhadap garis y=mx pada bidang xy dapat dibuat merupakan
kombinasi dari transformasi translasi-rotasi-refleksi. Secara umum pertama-
tama dilakukan translasi garis mencapai titik potong koordinat. Kemudian
garis dirotasi ke salah satu sumbu dan refleksi objek menurut sumbu tersebut.
Objek dan garis dirotasi sehingga mencapai sumbu lainnya.
5. Shear
Shear adalah bentuk transformasi yang membuat distorsi dari bentuk
suatu objek, seperti menggeser sisi tertentu. Dua macam shear yang umum
adalah shear terhadap sumbu x dan sumbu y. Matriks transformasi shear dapat
dirumuskan sebagai berikut:
Matriks transformasi untuk shear terhadap sumbu y adalah :
Shear juga dapat dilakukan terhadap garis tertentu yang sejajar dengan
sumbu x dengan bentuk matriks :
C. Clipping dan Viewing
Kliping adalah pemotongan suatu objek dengan bentuk tertentu.
Alasan dilakukan kliping adalah
- Menghindari perhitungan koordinat pixel yang rumit (karenanya kliping
dilakukan sebelum rasterisasi).
- Interpolasi parameter
Sarana pemotong objek disebut jendela kliping.
Fungsi jendela kliping adalah untuk mengidentifikasi objek yang akan di-
clipping dan memastikan bahwa data yang diambil hanya yang terletak di
dalam jendela clipping.
Bentukjendela kliping : Segi empat, Segitiga Lingkaran atau Ellips, Polygon
dan lain-lain.
1. Clipping Titik
Untuk menentukan letak suatu titik di dalam jendela kliping,
digunakan ketentuan :
Xmin O X O Xmax dan
Ymin O Y O Ymax
Pada gambar di atas, terdapat sebuah jendela kliping dengan parameter sebagai
berikut :
- Xmin - batas minimum sumbu X
- Xmax - batas maksimum sumbu x
- Ymin - batas minimum sumbu Y
- Ymax - batas maksimum sumbu Y
- Terdapat w2 buah titik P1(x,y) dan P2(x,y) dengan :
o P1 terletak di dalam jendela kliping,karena
P1.x < Xmax dan P1.x > Xmin
serta P1.y < Ymax dan P1.y > Ymin
o P2 terletak di dalam jendela kliping,karena
P2.x < Xmin
walaupun P2.x < Xmax
P2.y < Ymax dan P2.y > Ymin
2. Clipping Garis
Kliping sebuah garis P1 dan P2 dengan jendela L, R, T, dan B akan
berhubungan dengan garis yang terletak di dalam jendela dan garis di luar
jendela. Garis yang berada di dalam jendela adalah garis yang akan
ditampilkan (P1’ – P2’), sedangkan garis yang terletak di luar jendela dibuat
tidak tampak (P1 – P1’ dan P2 – P2’).
Untuk menentukan letak sebuah garis di dalam jendela kliping
dilakukan analisis letak titik yang menentukan garis tersebut dan memastikan
bahwa titik-titik tersebut berada di dalam jendela kliping.
Kondisi garis terhadap jendela kliping :
- Invisible : Tidak kelihatan, terletak di luar jendela kliping.
- Visible : Terletak di dalm jendela kliping.
- Halfpartial : Terpotong sebagian oleh jendela kliping, bisa hanya dengan
bagian atas, bawah, kiri atau kanan.
- Vollpartial : Terpotong penuh oleh jendela kliping. Garis melintasi jendela
kliping.
3. Algoritma Umum Kliping
4. Algoritma Cohen-Sutherland
Hubungan antara sebuah garis dengan jendela kliping dapat ditulis
seperti hubungan antara titik awal dan titik akhir sebuah garis dengan jendela
kliping.
P1(x,y) dan P2(x,y)TM⇔ W(L,R,T,B)
Untuk menentukan relasi tersebut diperlukan suatu struktur data
pembantu yang disebut pointcode. Dengan pointcode kita dapat
mengidentifikasi posisi titik terhadap jendela kliping.
Nilai untuk pointcode l, r, t dan b adalah 1 dan 0 yang merupakan nilai
logika yang dapat dimengerti dengan nilai true dan false.
Suatu titik yang visible berarti titik tersebut terletak di dalam jendela
kliping, dan invisible jika terletak di luar jendela kliping.
Suatu titik itu visible dengan pointcode jika nilai l, r, t dan b adalah
nol, artinya jika salah satu nilai dari l, r, t dan b tidak sama dengan nol maka
dapat diketahui bahwa titik tersebut terletak di luar jendela kliping dan
diketahui pada posisi mana.
Berdasarkan urutan kode, pointcode ditentukan :
pointcode Arti Kode
0000 Terletak di dalam jendela kliping
0001 Terletak di sebelah kiri jendela kliping
0010 Terletak di sebelah kanan jendela kliping
0100 Terletak di sebelah bawah jendela kliping
0101 Terletak di sebelah kiri bawah jendela kliping
0110 Terletak di sebelah kanan bawah jendela kliping
1000 Terletak di sebelah atas jendela klipig
1001 Terletak di sebelah kiri atas jendela kliping
1010 Terleak di sebelah kanan atas jendela kliping
Titik terletak di dalam jendela kliping jika jumlah keempat pointcode adalah
nol :L + R + T + B = 0.
Titik terletak di luar jendela kliping jika jumlah keempat pointcode lebih besar
dari nol. L + R + T + B > 0.
D. 3 Dimensi1. Sistem Koordinat Cartesian Tiga Dimensi
Dalam sistem koordinat cartesian dua dimensi hanya terdapat 2
besaran saja (sumbu x dan y). Sedangkan untuk memodelkan objek tiga
dimensi yang memiliki kedalaman, diperlukan 1 sumbu tambahan yaitu sumbu
z, maka digunakanlah sistem koordinat cartesian tiga dimensi. Sistem
koordinat cartesian dibedakan menjadi 2 yaitu, sistem koordinat tangan kanan
dan sistem koordinat tangan kiri. Sistem koordinat tangan kanan diilustrasikan
dengan jari telunjuk tangan kanan sebagai sumbu x diputar sebesar 90 derajat
ke arah jari tengah tangan kanan sebagai sumbu y, sehingga arah ibu jari
tangan kanan sebagai sumbu z mendekati pengamat (arah z positif). Gambar
dibawah menunjukkan orientasi sumbu koordinat menggunakan sistem
koordinat tangan kanan.
Sistem Koordinat Tangan Kanan
Sedangkan pada sistem koordinat tangan kiri dapat diilustrasikan
dengan jari telunjuk tangan kiri sebagai sumbu x diputar sebesar 90 derajat ke
arah jari tengah tangan kiri sebagai sumbu y, sehingga arah ibu jari tangan kiri
sebagai sumbu z menjauhi pengamat (arah z positif). Gambar dibawah
menunjukkan orientasi sumbu koordinat menggunakan sistem koordinat
tangan kiri. Dalam komputer grafik lebih banyak digunakan sistem koordinat
tangan kanan.
Sistem Koordinat Tangan Kiri
2. Sistem Koordinat Spheris
Pada sistem koordinat spheris, sebuah titik dianggap terletak pada
permukaan kulit bola yang memiliki jari – jari R, dan titik pusat bola berimpit
dengan titik pusat sistem koordinat. Dapat diambil sembarang titik, misalnya
titik W sehingga dikenal besaran colatitud dan azimuth. Colatitud ( o) adalah
besarnya sudut yang dibentuk antara sumbu z dan garis yang ditarik dari titik
pusat ke titik W. Azimuth ( O ) adalah besarnya sudut antara bidang xz dengan
bidang yang melewati titik W dan sumbu z. Gambar 2.9 menunjukkan sistem
koordinat spheris.
Sistem Koordinat Spheris
3. Refleksi
Refleksi merupakan sifat material yang dapat mencerminkan bentuk
objek – objek di sekitarnya jika terkena sinar. Besarnya sudut pantul
bergantung pada besarnya sudut datang dari sinar dan bentuk permukaan dari
objek yang terkena sinar tersebut.
Secara umum refleksi dapat diilustrasikan seperti gambar dibawah berikut ini :
Vektor refleksi R , berasal dari vektor V , dengan garis normal N , dan
dengan sudut O.
Rumus untuk menghitung vector R dengan besar sudut O , vektor
normal N dan vektor asal V :
R = V - 2( V . N ) N
4. Proyeksi
Proyeksi merupakan proses mentransformasikan titik – titik di sistem
koordinat berdimensi n ke titik – titik di sistem koordinat dengan dimensi yang
lebih kecil dari n. Dalam grafik tiga dimensi, proyeksi didefinisikan dengan
pancaran sinar proyeksi yang berasal dari sebuah pusat proyeksi yang
dipancarkan sampai mengenai masing – masing titik dari objek tiga dimensi
dan memotong sebuah bidang proyeksi sehingga terbentuk hasil proyeksi. Dua
teknik proyeksi yang sering digunakan dalam grafik tiga dimensi yaitu
proyeksi perspektif dan proyeksi paralel. Perbedaan diantara kedua teknik itu
terletak pada letak pusat proyeksi terhadap bidang proyeksi. Pada proyeksi
perspektif, jarak pusat proyeksi ke bidang proyeksi terdefinisi. Pada proyeksi
paralel jarak pusat proyeksi ke bidang proyeksi tidak terdefinisi (sangat jauh).
Proyeksi perspektif menghasilkan efek visual yang menyerupai sistem
fotografi dan sistem visual pada manusia. Hal ini membuat proyeksi perspektif
menampilkan objek yang lebih nyata daripada objek yang dihasilkan oleh
proyeksi paralel. Proyeksi paralel biasanya digunakan untuk pengukuran yang
pasti. Karena perbandingan panjang objek di ruang tiga dimensi dengan
panjang objek di bidang proyeksi selalu sama.
a. Proyeksi Paralel
Proyesi paralel dapat diilustrasikan dengan sebuah titik pada bidang
tiga dimensi W(wx,wy,wz) diproyeksikan ke bidang dua dimensi dengan cara
menghapus salah satu komponen titiknya, misalnya komponen z (membuat
nilai wz sama dengan nol) sama dengan memproyeksikan titik W ke bidang
xy. Dalam hal ini bidang xy disebut dengan bidang pandang (viewplane).
Proyeksi dari setiap titik diperoleh dengan menjatuhkan sinar (disebut
proyektor), dengan arah jatuh sinar tegak lurus terhadap bidang proyeksi.
Proyeksi ini disebut dengan proyeksi orthogonal. Gambar dibawah
menggambarkan proyeksi paralel.
Proyeksi Paralel
b. Proyeksi Perspektif
Proyeksi perspektif sering juga disebut frustrum projection, merupakan
sekumpulan sinar paralel yang diproyeksikan terhadap titik hilang (vanishing
point). Jika sekumpulan sinar sejajar dengan salah satu sumbu koordinat, maka
titik hilang disebut dengan titik hilang sumbu. Sedangkan jika ada titik hilang
sumbu yang berpotongan dengan bidang proyeksi maka disebut dengan titik
hilang utama. Objek yang berada di dekat view plane1 akan terlihat lebih
besar bila dibandingkan dengan objek yang letaknya jauh dari view plane, hal
ini membuat proyeksi perspektif lebih terlihat nyata. Gambar dibawah
menunjukkan proyeksi perspektif.
Proyeksi Perspektif
5. Kamera Model
Dalam grafika komputer tidak semua objek dapat ditampilkan pada
layar, sehingga diperlukan suatu batasan objek – objek mana saja yang akan
ditampilkan. Objek – objek tersebut dibatasi dengan suatu daerah yang disebut
view volume.
Untuk menampilkan ke layar maka harus dilakukan proyeksi terhadap
view volume pada view plane, hanya sebagian dari view plane yang akan
ditampilkan pada layar. Bagian dari view plane ini berbentuk bujur sangkar,
disebut dengan viewport seperti terlihat pada gambar dibawah berikut ini :
Kamera Model dengan View Frustrum
View plane dibatasi oleh dua plane2 (Near dan Far), yang paralel
terhadap view plane ini disebut dengan view frustrum. Paralel plane yang
dekat dengan mata (E) disebut dengan near plane, sedangkan plane yang
letaknya jauh dari mata disebut dengan far plane.
Kombinasi dari lokasi kamera (eye point), view plane, viewport, dan
view frustrum disebut dengan kamera model. Kamera model merupakan suatu
cara untuk menempatkan kamera dan mengorientasikannya pada ruang tiga
dimensi. Salah satu cara yang digunakan dalam kamera model yaitu sistem
koordinat arah pandang. Sistem koordinat arah pandang sering disebut dengan
sistem koordinat uvn, sesuai dengan nama – nama sumbu koordinat yang
menjadi komponennya. Sistem koordinat arah pandang dapat diilustrasikan
dengan bidang pandang berimpit dengan bidang uv, sedangkan mata terletak
pada sumbu n. Hal ini mirip dengan sistem koordinat cartesian, dimana mata
terletak pada sumbu z, dan bidang pandang pada bidang xy.
Sistem Koordinat Arah Pandang
Hubungan antara sistem koordinat arah pandang dengan sistem
koordinat cartesian, diilustrasikan pada gambar diatas Dari gambar tersebut,
bidang uv merupakan bidang pandang. Pada bidang pandang ini ditentukan
sebuah titik yang disebut dengan titik acuan pandang (view reference point,
VRP), dan dianggap sebagai titik pusat dari sistem koordinat arah pandang.
Dalam sistem koordinat dunia, komponen vektor n dinyatakan sebagai
(nx,ny,nz). Dengan adanya sumbu ke arah n inilah sistem koordinat uvn
terbentuk. Sumbu u dan sumbu v saling tegak lurus. Sedangkan vektor n
mempunyai arah tegak lurus terhadap bidang uv, dan karena sumbu u dan
sumbu v terletak pada bidang uv, maka jelaslah bahwa arah vektor n tegak
lurus terhadap sumbu u dan sumbu v.
Jika vektor n dan v diketahui, dengan mudah bisa dihitung komponen
vektor u. Karena arah vektor u tegak lurus pada vektor v dan n, maka vektor u
bisa dihitung dengan menggunakan cross product dari vektor n dan v, yaitu u =
n x v.
Setelah sistem koordinat arah pandang lengkap dengan berbagai
komponennya, maka perlu ditentukan batas jendela dan posisi matanya.
Jendela terletak pada sistem koordinat bidang pandang, dan batas – batasnya
dinyatakan sebagai (jkr, jat, jkn, jbw). Dari batas – batas tersebut terlihat
bahwa pada arah mendatar, jendela mempunyai batas – batas dari u = jkr
sampai v = jkn, pada arah tegak, jendela mempunyai batas dari u = jat sampai
v = jbw. Posisi mata, yaitu m(mu, mv, mn) dapat diletakkan pada sembarang
tempat pada sistem koordinat arah pandang. Posisi mata yang paling sering
dipakai adalah dengan menempatkannya pada sumbu n sejauh M dari VRP,
yaitu pada posisi m = (0, 0,M).
Berikut mengilustrasikan posisi jendela dan mata pada sistem koordinat arah
pandang.
Posisi jendela dan mata
6. Model Layar
Pada grafika komputer, layar penampil memiliki titik pusat koordinat
(0,0) terletak pada posisi paling atas dan paling kiri. Sistem windowing pada
komputer grafik berbentuk kotak yang didefinisikan berupa koordinat
(kiri,atas) dan (kanan,bawah) seperti yang terlihat pada gambar dibawah
berikut :
Titik pusat koordinat pada layar penampil
Dari gambar diatas, untuk posisi tengah (center), lebar layar dan tinggi layar
dapat dihitung sbb :
horizontal center = ( kiri + kanan ) / 2
vertical center = ( atas + bawah ) / 2
lebar = kanan – kiri
tinggi = bawah – atas
Dalam menampilkan gambar pada layar penampil, dilakukan perbandingan
ukuran window dengan kamera model. Sehingga jika dilakukan perubahan
ukuran pada kamera model, window dapat dengan mudah menyesuaikan
ukurannya.
7. Pemotongan (Clipping)
Kadang kala objek – objek yang hendak ditampilkan ada bagian yang
berpotongan dengan view volume sehingga perlu dilakukan proses
pemotongan (clipping). Gambar dibawah menunjukkan proses clipping dan
culling.
Proses pemotongan (clipping) dilakukan pada garis di tengah dan
bawah, proses penghilangan (culled) garis di atas .
8. Pencahayaan
Dalam komputer grafik, faktor pencahayaan cukup penting. Suatu
objek akan terlihat lebih nyata dan menarik jika diberi pencahayaan yang
sesuai. Beberapa tipe pencahayaan, yaitu :
a. Directional Light Source, tipe pencahayaan yang sumber cahayanya
dianggap terletak sangat jauh dari objek, sehingga seluruh berkas cahaya
yang mengenai objek datang secara paralel. Contoh directional light di
dunia nyata adalah cahaya matahari yang menyinari bumi.
b. Positional Light Source, tipe pencahayaan yang sumber cahaya ini serupa
dengan lampu yang terletak dekat dengan objek yang disinari, sehingga
jarak/posisi antara cahaya dengan objek akan mempengaruhi
terang/gelapnya objek.
c. Spotlight, tipe pencahayaan yang mirip dengan positional light source,
hanya saja dengan batasan daerah pencahayaan. OpenGL juga telah
menyediakan model pencahayaan yang terdiri dari diffuse, ambient, dan
specular.
9. Deffuse
Diffuse merupakan sifat material yang menyebarkan cahaya ke semua
arah. Jika sinar mengenai suatu objek yang memiliki material diffuse maka
permukaan objek tersebut terlihat lebih jelas. Intensitas cahaya diffuse lebih
kecil dikarenakan sifatnya penyebarannya yang ke semua arah. Gambar
dibawah menggambarkan arah penyebaran cahaya pada model diffuse.
Arah penyebaran cahaya pada model diffuse
10. Ambient
Ambient merupakan cahaya latar belakang yang dipantulkan oleh
objek secara seragam ke segala arah. Intensitas cahayanya kecil karena
penyebarannya ke segala arah. Gambar dibawah menunjukkan model
pencahayaan dengan ambient.
Model pencahayaan dengan ambient
11. Specular
Model pencahayaan dimana penyebaran cahayanya hanya ke arah
tertentu saja, sehingga hukum yang berlaku disini adalah sudut pantul sama
dengan sudut datang cahaya. Intensitas cahayanya tinggi karena hanya
dipantulkan ke satu arah saja. Objek yang memiliki material ini memiliki
kesan berkilau. Gambar dibawah menunjukkan penyebaran cahaya specular.
Arah penyebaran cahaya pada model specular
II. ANALISIS PROGRAMA. Titik dan Garis
Untuk membuat titik pada java digunakan fungsi g.drawOval(); walaupun
fungsi ini sebenarnya digunakan untuk membuat Lingkaran atau Oval namun
fungsi iini dapat digunakan untuk membuat titik dengan memperkecil nilai
jari-jarinya. Sedangkan untuk menggambar garis digunakan fungsi
g.drawLine();
Berikut keterangan fungsinya :
- untuk menggambar garis g.drawLine(int x1, int y1, int x2, int y2);
- untuk menggambar lingkaran/oval g.drawOval(int x, int y, int width, int
heigh);
- untuk menggambar lingkaran/oval dengan warna didalamnya
g.fillOval(int x, int y, int width, int heigh);
- untuk menuliskan kata/kalimat g.drawString("string", int x, int y);
- untuk memberi warna g.setColor(Color.BLACK);
Berikut Screenshoot Programnya :
1. Titik
2. Garis
3. Vektor
B. Tansformasi 2 Dimensi1. Translasi
Translasi adalah menggeser suatu titik garis, maupun bangun kesuatu tempat/koordinat tertentu. Rumus untuk menentukan hasil dari translasi adalah :X’ = X + nXY’ = Y + nYDimana X’ dan Y’ merupakan hasil translasi, X dan Y merupakan koordinat awal dan nX dan nY merupakan besarnya nilai TranslasiBerikut adalah tampilan Programnya :a. Titik
b. Garis
c. Lingkaran
d. Segitiga
e. Segiempat
2. RefleksiRefleksi atau pencerminan adalah memindahkan suatu titik, garus atau bangun ke suatu tempat tanpa mengubah bentuk asli dari bangun tersebut.Refleksi ada bermacam-macam diantaranya : Refleksi terhadap sumbu x, terhadap sumbu y, terhadap titik pusat, terhadap garis y=x dll.Berikut tampilan Programnya :
a. Titik
o Terhadap SumbuX
o Terhadap Sumbu Y
o Terhadap Titik Pusat (0,0)
o Tehadap garis y=x
o Terhadap Garis y=-x
o Terhadap Garis x=a
o Teradap Garis y=b
o Terhadap Titik (a,b)
b. Garis
o Terhadap SumbuX
o Terhadap Sumbu Y
o Terhadap Titik Pusat (0,0)
o Tehadap garis y=x
o Terhadap Garis y=-x
o Terhadap Garis x=a
o Teradap Garis y=b
o Terhadap Titik (a,b)
c. Lingkaran
o Terhadap SumbuX
o Terhadap Sumbu Y
o Terhadap Titik Pusat (0,0)
o Tehadap garis y=x
o Terhadap Garis y=-x
o Terhadap Garis x=a
o Teradap Garis y=b
o Terhadap Titik (a,b)
d. Segitiga
o Terhadap SumbuX
o Terhadap Sumbu Y
o Terhadap Titik Pusat (0,0)
o Tehadap garis y=x
o Terhadap Garis y=-x
o Terhadap Garis x=a
o Teradap Garis y=b
o Terhadap Titik (a,b)
e. Segiempat
o Terhadap SumbuX
o Terhadap Sumbu Y
o Terhadap Titik Pusat (0,0)
o Tehadap garis y=x
o Terhadap Garis y=-x
o Terhadap Garis x=a
o Teradap Garis y=b
o Terhadap Titik (a,b)
3. RotasiRotasi adalah memindahkkan suatu titik, garis atau bidang dengan sudut tertentu dan berlawanan arah jarum jam. Rotasi ada 2 macam yaitu rotasi terhadap titik pusat (0,0) dan rotasi terhadap suatu titik P.
Rumus untuk rotasi adalahTerhadap titik pusat (0,0)x’= x * cos(a)- y* sin(a) y’=x * sin(a)) + y * cos(a)
Terhadap titik Px’=xp+( (x-xp) * cos(a)- (y-yp) * sin(a))y’=yp+((x-xp) * sin(a)) + (y-yp) * cos(a))
Berikut adalah tampilan programnya :a. Titik
o Terhadap Titik (0,0)
b. Garis
o Pusat (0,0)
o Pusat titik P
c. Lingkaran
o Pusat (0,0)
d. Segituga
o Pusat (0,0)
o Pusat titk P
e. Segiempat
o Pusat (0,0)
o Pusat titik P
4. Dilatasia. Lingkaran
b. Segitiga
c. Segiempat
5. Sheara. Segitiga
o Terhadap Sumbu X
o Terhadap Sumbu Y
b. Segiempat
o Terhadap Sumbu X
o Terhadap Sumbu Y
C. Clipping1. Titik
a. Viewport Lingkaran
b. Viewport Segitiga
c. Viewport Segiempat
2. Garisa. Viewport Lingkaran
b. Viewport Segitiga
c. Viewport Segiempat
3. Lingkarana. Viewport Lingkaran
b. Viewport Segitiga
c. Viewport Segiempat
4. Segitiga a. Viewport Lingkaran
b. Viewport Segitiga
c. Viewport Segiempat
5. Segiempat a. Viewport Lingkaran
b. Viewport Segitiga
c. Viewport Segiempat
D. Viewing1. Titik
a. Clipping
b. Viewing
2. Garis
a. Clipping
b. Viewing
3. Lingkaran
a. Clipping
b. Viewing
4. Segitiga
a. Clipping
b. Viewing
5. Segiempat
a. Clipping
b. Viewing
E. 3 Dimensi1. Kotak
2. Kerucut
3. Silinder
4. Bola
5. Animasi