Anda di halaman 1dari 16

Triangle Drawing

Persamaan Garis

Persamaan akan bernilai 0 pada titik-titik yang tepat terletak pada garis Pada titik-titik di atas garis, persamaan akan menghasilkan nilai > 0 Pada titik-titik di bawah garis, persamaan akan menghasilkan nilai < 0 Bila nilai A, B dan C dikalikan dengan -1, maka posisi nilai positif dan negatif akan berbalik (titik di atas garis menghasilkan nilai < 0, titik di bawah garis
menghasilkan nilai >0).
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004 1

Segitiga Disusun dari 3 Garis


Segitiga macam apapun selalu dapat dinyatakan dengan tiga buah garis

A2x+B2y+C2=0

A1x+B1y+C1=0

A3x+B3y+C3=0
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004 1

Segitiga Dinyatakan sbg Area Positif


Area segitiga dapat didefinisikan bila orientasi garis akan meletakkan nilainilai positif berada di dalam segitiga.

Diperlukan pengaturan nilai-nilai A, B dan C agar hal tsb bisa tercapai.


Bagaimana menghitung nilai-nilai A, B dan C ?

A2x+B2y+C2=0

-+

++ A3x+B3y+C3=0

A1x+B1y+C1=0

Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004

Bagaimana Menentukan Persamaan Garis?


Segitiga dapat didefinisikan dengan tiga buah titik Setiap garis penyusun segitiga dapat didefinisikan dari dua titik dari ketiga titik tsb

P2 A2x+B2y+C2=0 P3 P1 A1x+B1y+C1=0

A3x+B3y+C3=0

Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004

Persamaan Garis Dari Dua Titik


P2(x2,y2)

A = y1 - y2
B = x2 x1 C = -0.5 * (A * (x1+x2) + B * (Y1+Y2) ) Gunakan cara di atas untuk menyusun ketiga persamaan garis pada segitiga AWAS! Urutan titik jangan dikacaukan! Nilai A, B dan C sebenarnya nilai apanya garis?
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004 1

P1(x1,y1)

Penjelasan Tentang A, B dan C


P2(x2,y2) Ax + By + C = 0

luas = 0.5 * C

P1(x1,y1)

(0,0) Nilai A dan B tentu saja menunjukkan gradien / kemiringan garis

Nilai C adalah dua kali luas segitiga yang terbentuk dari P1, P2 dan origin
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004 1

Luas Segitiga = 0.5 * Total Nilai C

Luas = 0.5 * (C1+C2+C3)


Bila nilai luas negatif, maka kita tahu bahwa ketiga nilai A, B dan C terbalik negatif/positifnya. Harus dibalik! Agar tidak terbalik, urutan vertex harus berlawanan arah dg jarum jam.
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004
1

Cara Penggambaran Segitiga


Dapatkan koordinat 3 buah titik, namai P1, P2 dan P3 Bentuk persamaan garis: A1x + B1y + C1 = 0 A2x + B2y + C2 = 0 A3x + B3y + C3 = 0

(dari P1 dan P2) (dari P2 dan P3) (dari P3 dan P1)

Periksa, bila (C1+C2+C3) negatif, kalikan semua A, B dan C dengan -1 Tentukan bounding box segitiga Telusuri semua pixel dalam BBOX, masukkan dalam ketiga persamaan garis, bila semua positif, plot pixel tersebut!
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004
1

Smooth Triangle
Tetapi terkadang kita tidak cukup puas dengan segitiga yang flat (satu warna saja) Terutama bila kita hendak melakukan shading

Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004

Conto Lain Smooth Triangle

Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004

Cara Membuat Smooth Tri


Tentukan warna (gray level) untuk setiap titik Warna setiap pixel dalam segitiga adalah hasil interpolasi ketiga warna titik

warna di dalam segitiga dihitung dari interpolasi

Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004

Analogi Graylevel dg Ketinggian


Agar mudah, kita analogikan nilai graylevel dengan ketinggian bidang Setiap pixel dalam segitiga dalam bentuk (x,y,z) Koordinat x dan y adalah posisi pixel di layar Koordinat z adalah nilai graylevel = ketinggian

Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004

Persamaan Bidang
Kita memiliki tiga titik ujung segitiga (x1,y1,z1),(x2,y2,z2),(x3,y3,z3) Buat persamaan bidang Ax+By+Cz+D=0 dari tiga titik tsb!
(x3,y3,z3) (x4,y4,z4) nilai gray level di titik ini (z4) dapat dihitung dari persamaan bidang!

(x2,y2,z2)

(x1,y1,z1)

Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004

Mencari Persamaan Bidang


Dari tiga titik kita bisa menyusun persamaan bidang dengan bantuan cross product
(x3,y3,z3) a (x2,y2,z2)

=
(x1,y1,z1)

b c

Vektor (a,b,c) hasil cross product adalah nilai konstanta persamaan bidang. A=a; B=b; C=c
Grafika Komputer Sekolah Tinggi Teknik Surabaya, 2004
1

FiN!

Anda mungkin juga menyukai