Bulan bergerak mengelilingi bumi, bumi bersama bulan mengelilingi matahari. Gerakan bumi dan bulan tersebut dapat
menyebabkan terjadinya gerhana. Gerhana diartikan sebagai peristiwa tertutupnya suatu benda langit oleh benda langit lainnya. Setiap benda di
angkasa yang disinari matahari akan memiliki bayangan. Begitu pula dengan bumi dan bulan. Daerah bayangan bumi dan bulan yang gelap
dinamakan umbra. Sementara itu, daerah bayangan yang samar dinamakan penumbra. Bayangan bumi dapat jatuh mengenai bulan, sebaliknya
bayangan bulan juga dapat mengenai bumi Suhartanti, Zulaikha Suryani, 2008.
Gerakan bumi dan bulan juga mempengaruhi penampakan permukaan bumi. Sebagai contohnya adalah pasang naik dan pasang surut
air laut. Peristiwa ini dipengaruhi oleh gaya gravitasi bulan dan matahari. Saat bulan purnama, bumi, bulan dan matahari berada pada 1 garis lurus.
Begitu pula saat bulan baru, posisi ini menyebabkan terjadinya pasang purnama. Pasang purnama adalah terjadinya pasang naik dan pasang surut
tertinggi. Pada saat bulan paruh, posisi bulan, bumi dan matahari dapat membentuk sudut siku-siku. Hal ini mengakibatkan terjadinya pasang
perbani. Pasang perbani merupakan pasang naik dan pasang surut terendah Suhartanti, Zulaikha Suryani, 2008.
2.5 Deteksi Tumbukan
Collision Detection
Collision detection adalah landasan dasar terhadap berbagai jenis aplikasi, termasuk diantaranya permainan komputer, simulasi fisikal
seperti animasi komputer, robotik, virtual prototyping, dan simulasi engineering. Pada permainan komputer Collision detection memastikan
bahwa ilusi akan dunia yang sebenarnya tetap terjaga dengan mencegah karakter pemain berjalan menembus tembok atau terjatuh dari lantai. Pada
animasi komputer, collision detection digunakan sebagai contoh untuk menggambarkan simulasi fisikal dari pakaian, memastikan bahwa kondisi
pakaian sesuai dengan kondisi di kehidupan nyata di mana pakaian tidak jatuh dari tubuh karakter saat karakter bergerak. Collision detection
digunakan pada perencanaan jalur pada aplikasi robotik, membantu robot bergerak
menghindari rintangan
dan pada
virtual prototyping
memungkinkan penyempurnaan prototype tanpa harus memproduksinya dalam bentuk fisik Ericson, 2005. Urutan proses dari simulasi collision
detection adalah sebagai berikut Kim, 2005: 1. Membaca setiap input eksternal.
2. Melakukan perhitungan simulasi dan memperbarui grafik objek dan scene.
3. Memeriksa jika terjadi tumbukan dan menghasilkan respon. 4. Memperbarui letak dan orientasi kamera
5. Menggambar ulang scene 6. Kembali ke proses awal
Gambar 2.3 Deteksi Tumbukan
Terdapat beberapa teknik untuk mendeteksi tumbukan, di antaranya adalah dengan menggunakan collision modifier yaitu
menambahkan fungsi tumbukan pada setiap objek serta dengan menggunakan modelsunderray yaitu suatu fungsi yang akan mendeteksi
keberadaan objek lain di sekitar avatar dan menyimpannya dalam suatu list yang kemudian akan diproses jika terjadi tumbukan. Penggunaan collision
modifier hanya efektif jika digunakan pada aplikasi yang sederhana saja, karena pada aplikasi yang rumit dengan banyak objek, penggunaan teknik
ini akan sangat membebani sistem. Untuk penggunaan pada aplikasi dengan banyak objek maka digunakan modelsunderray dimana hanya
dibutuhkan sedikit fungsi dalam menangani pendeteksian tumbukan deansdirectortutorials.com.
2.6 ModelsUnderRay
Merupakan perintah 3 dimensi dalam pemrograman lingo yang mengembalikan daftar dari model yang ditemukan dalam sinar yang
dipancarkan dari posisi yang ditentukan oleh locationVector dan
mengarah sesuai dengan directionVector, yang kedua vector tersebut ditentukan dalam koordinat yang relatif.
Tambahan parameter maxNumberOfModels memberikan batasan dari daftar objek yang dikembalikan. Selain itu tambahan parameter
levelOfDetail dapat menentukan tingkat kedetailan dari informasi yang dikembalikan.
Di dalam daftar objek yang dikembalikan, model pertama dalam daftar merupakan objek yang terdekat dengan posisi locationVector dan
model terakhir dalam daftar merupakan objek terjauh dari posisi tersebut. Hanya 1 perpotongan perpotongan terdekat yang dikembalikan dari tiap
model. ModelsUnderRay mengembalikan daftar kosong jika tidak ada objek yang terdeteksi oleh berkas sinar.
2.7 2 Ray Wall Collision
2 Ray Wall Collision merupakan teknik deteksi tumbukan pada lingkungan 3 dimensi yang memanfaatkan teknik modelsunderray untuk
menghasilkan 2 berkas sinar yang dipancarkan dalam sumbu x dan y guna mendeteksi keberadaan objek lain dalam lingkungan tersebut. 2 Ray Wall
Collision digunakan untuk mendeteksi tumbukan dalam bidang horizontal, 2 berkas sinar tersebut dipancarkan dari posisi avatar dalam hal ini
kamera, yaitu pada sebelah kanan serta kiri avatar. Penggunaan 2 berkas sinar tersebut diposisikan diagonal hingga menyerupai huruf āVā serta
arah penyinarannya berubah sesuai dengan pergerakan avatar, hal ini