Gambar 10. Jarak Haussdorff
Fungsi-fungsi
yang termasuk dalam keluarga fungsi transenden (Purccell & Verberg, 1995) antara lain adalah fungsi
eksponensial ex, fungsi logaritma asli, fungsi invers dan turunannya,
fungsi sinusoidal seperti sin(x), cos(x) dan fungsi hiperbolis
seperti sinh(x) dan cosh(x). Dalam penelitian ini fungsi yang
dipakai dibatasi hanya untuk fungsi eksponensial dan fungsi sinusoidal seperti
sin(x), cos(x) dan fungsi hiperbolis seperti sinh(x) dan
cosh(x).
Iterasi
atas fungsi dengan menggunakan fungsi transenden akan menghasilkan gambar
fraktal yang unik (Stevens, 1990).
Fraktal kosinus, sinus, eksponensial, kosinus hiperbolik dan sinus hiperbolik
dapat diperoleh dengan melakukan iterasi terhadap fungsi-fungsi sebagai
berikut.
(Barnsley, 1995)
dengan z dan c adalah bilangan kompleks. Nilai c dalam
fungsi ini sama dengan kedudukan titik kompleks x + iy dan nilai awal z0
dapat dipilih z0 = 0 atau z0 = c.
B. Leaf
Dalam
hal ini, desain grafis daun dalam pembuatannya bisa menggunakan teknologi
komputer yang akan menyempurnakan bentuk model dari daun itu sendiri, sehingga
tampak seperti dua dimensi atau tiga dimensi.
Software-software
untuk menggambar pola daun bisa menggunakan seperti misalnya Adobe Photoshop,
Corel Draw, Ilustrator, AutoCad dan sebagainya.
[1]Contoh
penggambaran daun dengan menggunakan Photoshop dapat dilihat berikut ini.
Yang pertama dilakukan yaitu memilih Image > Rotate
Canvas > 90o CCW dan menggunakan tool crop untuk memotong bagian
daunnya.
Setelah itu pilih Image > Adjustments > Gradient
Map, ketika muncul tampilan lalu klik pada bar gradient untuk membuka
sebuah Gradient Editor. Setelah itu kita memilih warna daun yaitu hijau.
Gambar 11. Gradient
Editor
Karena kompleksitas gradien maka gambar menjadi tajam,
sehingga dapat juga melembutkan kontrasnya. Gandakan lapisan daun dua kali
lebih tebal, dengan cara memilih Filter > Blur > Gaussian Blur dan
mengatur radius sampai 4px. Setelah itu klik Thumbnail Layer Mask > Sikat
Soft Round besar dengan Opacity 15% dan melapisinya pada urat daun agar
menyembunyikannya dari blur.
Pada duplikat layer, dapat menerapkan Motion Blur
filter dan mengatur Opacity layernya. Untuk membuat gambar kerangkanya berkesan
meridian globe dan paralel, kita mengaturnya dengan Filter > Distort >
Shear lalu mengubah grid titik pusat ke kanan dan titik puncak ke kiri, lalu
mengganti pengaturan spherize dari menu distort hingga 52%.
Gambar 13. Shear
Maka jadilah hasilnya sebuah bentuk daun yang
diinginkan.
C. Tree Leaf
Leaf sebuah
node yang tidak memiliki children. Leaf biasa disebut sebagai external node,
sedangkan node selainnya disebut sebagai internal node.
Leaf
merupakan semua simpul yang berada pada tingkat terendah dari pohon dinamakan
daun (leaf node). Sejak mereka terletak pada tingkat paling bawah, mereka tidak
memiliki anak satupun. Seringkali, daun merupakan simpul terjauh dari akar.
Dalam teori grafik, sebuah daun adalah sebuah sudut dengan tingkat 1 selain
akar (kecuali jika pohonnya hanya memiliki satu sudut, maka akarnya adalah
daunnya juga). Setiap pohon memiliki setidaknya satu daun.
Dalam pohon
berdasarkan genetic programming sebuah daun (juga dibilang terminal) adalah
bagian terluar dari sebuah program pohon. Jika dibandingkan dengan fungsinya
atau simpul dalam, daun tidak memiliki argumen.
[2]Dimulai
dari node root, menggunakan tes terhadap atribut dari record yang belum ada
kelasnya ini lalu mengikuti cabang yang sesuai dengan hasil dari tes tersebut,
yang akan membawa kepada internal node (node yang memiliki satu cabang masuk
dan dua atau lebih cabang yang keluar), dengan cara harus melakukan tes lagi
terhadap atribut atau node leaf. Record yang kelasnya tidak diketahui kemudian
diberikan kelas yang sesuai dengan kelas yang ada pada node leaf. Pada pohon
keputusan setiap simpul leaf menandai label kelas. Proses dalam pohon keputusan
yaitu mengubah bentuk data (tabel) menjadi model pohon (tree) kemudian mengubah
model pohon tersebut menjadi aturan (rule) (J.
R. Quinlan, 1993).
Algoritma Insert Elemen y :
Cari
leaf yang tepat bagi y. Sama seperti BST, bandingkan y dengan isi node-node pada
path yang tepat, dari ROOT turun menuju leaf.
• jika
y sudah ada pada tree, insert gagal
• jika
tree masih kosong, create root baru dengan elemen y di data_l (>)
• jika
leaf yang tepat telah ditemukan, ada 3 kemungkinan :
A
: Leaf hanya punya 1 elemen (data_l) (>)
• jika
y > data_l : masukkan y sebagai data_r (data_r = y)
• jika
sebaliknya : geser elemen lama (data_r = data_l) dan masukkan y sebagai data_l
(data_l = y)
B
: Leaf berisi 2 elemen (FULL) dan parent berisi 1 elemen
• Bandingkan
ketiga elemen (2 elemen leaf dan y). Nilai tengah dimasukkan ke parent.
• Jika
leaf adalah left_child dari parent, geser elemen parent ke kanan dan masukkan
nilai tengah ke data_l parent.
• Pointer
left_child dan middle_child pada parent harus digeser.
• Jika
leaf adalah middle_child dari parent, masukkan nilai tengah ke data_r parent.
• Dua
nilai terkecil dan terbesar, akan menjadi elemen pertama pada leaf yang lama
dan leaf yang baru.
C
: Jika leaf dan parent sudah berisi 2 elemen (FULL)
• Seperti
kasus B, nilai tengah diserahkan pada parent. Karena parent sudah full, dilakukan
hal yang sama menuju root hingga bertemu dengan 2-node.
• Jika
pada path dari leaf hingga root, semua node merupakan 2-node, akan terbentuk
root baru dengan elemen nilai tengah. Nilai terkecil dan terbesar akan menjadi
2 children dari root baru.
Delete
Elemen :
Penghapusan
elemen berlawanan. Cari elemen yang akan dihapus. Jika elemen berada di leaf p
:
• Jika
p 3-node (berisi 2 elemen)
Elemen langsung
dihapus, sehingga p hanya memiliki 1 elemen.
• Jika
p 2-node (berisi 1-elemen)
Node parent p
disebut r dan sibling kiri/kanan p adalah q.
• Jika
sibling q 3-node, dilakukan rotasi, elemen parent r diletakkan di p dan elemen
q diletakkan di r.
• Jika
sibling q 2-node, dilakukan penggabungan q dan q, sehingga jumlah children r
berkurang 1.
• Jika
setelah rotasi/penggabungan node parent r kosong, berarti r = root, maka node p
dijadikan root baru.
• Jika
elemen yang akan dihapus tidak ada di leaf, maka elemen tersebut akan
digantikan elemen terbesar dari subtree kiri atau elemen terkecil dari subtree
kanan yang berada di leaf. Selanjutnya penghapusan elemen di leaf akan
mengikuti langkah 2.
Mencari Leaf (daun)
void
leaf(Tree *root){
if(root
== NULL) printf("kosong!");
if(root->left!=NULL)
leaf(root->left);
if(root->right!=NULL)
leaf(root->right);
if(root->right
== NULL && root->left == NULL) printf("%d
",root->data);
}
D.
Digital
Sculpting
[3]Beberapa
sistem virtual sculpting telah dikembangkan sebelumnya. Sederberg dan
Parry mengenalkan Free-Form Deformation (FFD) untuk melakukan solid
modeling (Sederberg and Parry, 1986). Pada FFD, penggunaan tool sulit
diterapkan karena manipulasi objeknya bersifat tidak langsung. Hsu, Huges, dan
Kaufman mengenalkan Direct Manipulation Free-Form Deformation (DMFFD),
yang merupakan pengembangan dari FFD (Hsu, Huges, dan Kaufman, 1992). Pada
DMFFD, penerapan tool menjadi lebih mudah. Hsu menggunakan tool
sederhana untuk
melakukan operasi pushing dan pulling pada vertex-vertex yang
dipilih. Hilton dan Egbert (Hilton dan Egbert, 1994) mengenalkan tool berbasis
vector field. Collision
detection
antara
tool dan objek ditentukan dengan melihat apakah titik-titik objek berada
di dalam wilayah tool. Disini bentuk-bentuk tool yang dapat
diterapkan terbatas pada bentukbentuk sederhana. Bill dan Lodha (Bill and Lodha,
1994) pada sistem yang dinamai SAMIAM, memanfaatkan persamaan superkudratik untuk
mendefinisikan tool, yang digunakan untuk melakukan pemodelan pada polygon
mesh. Bentuk tool pada SAM-IAM juga terbatas pada bentuk-bentuk
sederhana. Gain dan Marais pada metodenya yang disebut Warp Sculpting (Gain
dan Marais, 2005) memanfaatkan distance field untuk melakukan collision
detection antara tool dan objek. Zhang dan Leu (Zhang and Leu, 2009)
menerapkan metode yang hampir sama dengan Warp Sculpting pada implicit
object, dengan menambahkan metode level-set untuk menentukan
deformasi.
Ray-Triangle
Intersection
Fungsi
ray-triangle intersection adalah fungsi untuk menentukan perpotongan
antara suatu sinar dengan segitiga. Fungsi ini digunakan dalam proses
pencahayaan pada kartu grafis. Sinar dinyatakan dengan dua buah vector, yaitu vector
yang menyatakan letak sumber cahaya dan vector satuan yang menyatakan arah
sinar. Jika O adalah vector posisi sumber sinar, dan D adalah
vector satuan yang menunjukkan arah sinar, maka sinar akan mempunyai persamaan titik
sebagai berikut.
R(t)
= O + tD (1)
Persamaan titik
suatu segi tiga yang dibentuk oleh tiga buah titik V1, V2, dan V2
dinyatakan sebagai berikut.
1 2 3 T(u,
v) = (1− u − v)V
+ uV + vV (2)
[3] I Ketut Purnamawan dkk. Virtual Sculpting Menggunakan Tool Berbasis Vector Pada Triangle Mesh,
Surabaya, 2011, hlm.1.
[2] Abdul Azis, Modul Praktikum Struktur Data dan Algoritma, 2012, hlm.1.