Member baru? Bingung? Perlu bantuan? Silakan baca panduan singkat untuk ikut berdiskusi.

Welcome to Forum Sains Indonesia. Please login or sign up.

April 23, 2024, 04:09:18 PM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139,653
  • Total Topik: 10,405
  • Online today: 147
  • Online ever: 1,582
  • (Desember 22, 2022, 06:39:12 AM)
Pengguna Online
Users: 0
Guests: 130
Total: 130

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

Singgungan antar permukaan

Dimulai oleh Farabi, November 21, 2011, 08:04:18 PM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Farabi

Permukaan, atau biasa disebut faces, adalah sebuah objek datar yang terbentuk dari minimal 3 buah titik. 1 Buah Tri yang terdiri dari 3 buah VERTEX ini biasa disebut sebagai face. Dalam kehidupan sehari hari, kita biasa menyaksikan, anda menabrak pintu, tangan anda beradu dengan keyboard, dan contoh lain dari singgungan antar face. Untuk hal ini saya akan memberikan kepada anda sebuah contoh mudah, tapi dengan implementasi ekstrim.

Seperti yang anda ketahui, sebuah lingkaran selalu mempunyai jarak atau radius yang tetap berapa kalipun anda putar. Dengan kata lain, jika sebuah titik berada didalam jangkauan radius, maka titik tersebut bersinggungan dengan lingkaran.

Cara untuk menemukan sebuah jarak adalah dengan rumus J=Akar((DX*DX)+(DY*DY)), sehingga, jika sebuah titik mempunyai jarak yang lebih kecil daripada sebuah radius, titik tersebut bersinggungan dengan lingkaran. Misalkan.

Titik pusat lingkaran ada A(10,10) dengan radius 10. Sebuah titik Mouse berada pada M(13,13). Apakah titik mouse tersebut berada dalam lingkaran.

Pertama, dapatkan dulu nilai delta dari tiap komponen seperti biasa

C=A-M
C(3,3)
J=Akar((3*3)+(3*3))
J=Akar(9+9)
J=Akar(18)
J= 4.100123xxxxxx (tidak tepat memang, saya hitung kira kira saja)

atau J kita bultkan ke bawah menjadi 4.
Karena dari titik pusat, radiusnya adalah 10 dan jarak Mouse adalah kurang lebih 4, maka titik Mouse berada didalam lingkaran, karena lebih kecil daripada Radius.


Dengan berdasarkan logika diatas, kita bisa menggunakan hal tersebut dengan sedikit modifikasi misalkan untuk menghitung sebuah segitiga, atau objek kompleks lainnya. Ingat, untuk sebuah objek yang teramat sangat kompleks, anda jangan tertipu dengan menggunakan rumus ajaib yang bikin otak meledak, melainkan, pecah pecah objek rumit tersebut menjadi objek yang lebih mudah, baru kemudian hitung satu persatu, karena ternyata hasilnya sama. Misal, sebiah objek poligon asal sebanyak 200 titik anda pecah menjadi beberapa kotak dan segitiga, ini akan lebih mudan anda hitung persinggungannya daripada anda mencari rumus super ajaib biarpun mungkin untuk melakukannya. Tapi kalau anda mampu mencari rumus super ajaib tersebut, siapapun anda, anda akan saya kasihkan ijasah S2 dalam bidang matematika, tapi cuma saya saja yang mengakuinya ;D haha


Nah ini adalah contoh implementasi ekstrim dari rumus diatas.
[pranala luar disembunyikan, sila masuk atau daftar.]
Note:
Ekstrim itu untuk yang ga tahu, yaitu orang awam, untuk anda yang sudah baca penjelasan diatas sih, itu tidak ekstrim tapi super mudah ;D.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

;D Beginilah jadinya kalau matematikawan amatir mencoba mengaplikasikan matematika pada kehidupan nyata


Tapi saya tetep hebat kan? ;D haha.
Hitungannya meleset kedalam beberapa titik, karena titik yang mengarah keatas saya datarkan supaya gampang hitungnya. Jadi semua objek tersebut biarpun terlihat berombak sebetulnya cuma bentuk datar saja, karena susah hitungnya kalau tidak didatarkan, setidaknya untuk sekarang.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Maaf di contoh sebelumnya saya salah simpan pustakanya, ini sudah diperbaiki.
[pranala luar disembunyikan, sila masuk atau daftar.] (3.5 MBytes)
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi



Sudah sangat akurat. Dengan kalkulasi TRIMESH yang sangat akurat.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

#5
Menentukan apakah sebuah garis berada di dalam lingkaran.

Untuk menemukan titik titik setiap garis anda sudah mengetahui caranya, dengan menghitung gradient dan mengalikan lingkaran. Ada cara yang mudah untuk menentukan titik sebuah lingkaran. Yaitu dengan melihat apakah salah satu titik entah akhir atau awal berada didalam lingkaran atau tidak, akan tetapi untuk menghitung apakah sebuah gari melintasi sebuah lingkaran, ini lain lagi, otak saya keburu meledak untuk memikirkan caranya ;D

Tapi cara yang paling mudah untuk menentukan apakah sebuah garis melintasi lingkaran atau tidak, adalah dengan melihat apakah komponen X atau Y titik awal lebih kecil dari radius dan komponen titik akhir X atau Y lebih besar daripada Radius. Dengan melihat kedua hal tersebut, kita bisa melihat apahak sebuah garis melintasi suatu lingkaran atau tidak.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

#6
Sebelum menentukan apakah sebuah titik berada didalam  sebuah permukaan dalam format deretean TRIMESH. Kita pertama perlu untuk mengetahui dulu semua titik minimal dan maximal pada seluruh VERTEX. Hal ini untuk mempermudah untuk membuat sebuah kubus datar untuk menentukan apakah sebuah titik perlu untuk kita hitung atau tidak. Karena membandingkan dan menghitung satu persatu seluruh TRIMESH akan sangat menghabiskan waktu. Ini adalah salah sebuah teknik yang disebut sebagai bounding box. Teknik ini akan menjadi lebih efisien lagi jika sebuah TRIMESH dianggap sebagai sebuah kotak, sehingga lagi lagi, kita bisa menentukan dengan akurat dan cepat, trimesh bagian mana yang perlu untuk kita hitung. Ini adalah teknik dari sistem singgungan antar benda untuk sistem mesin virtual simulasi fisika.

Karena, untuk menentukan sebuah titik dalam sebuah kubus atau balok, kita hanya perlu untuk menghitung ke 6 sisinya saja.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi



Contoh lain dari singgungan tapi dalam bentuk ray.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

"Trade off". Mengorbankan sesuatu untuk mendapatkan sesuatu. Dalam hal ini, mengorbankan ukuran demi kecepatan. Jadi ukuran menjadi besar, tapi kecepatan sangat tinggi, ini juga salah satu teknik optimasi.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Mod, saya minta tolong, thread ini tolong dihapus. ;D
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

ksatriabajuhitam

kenapa harus ditutup?

ini thread kok cuma Farabi doang yang posting? kayaknya sih member lain (minimal saya merasa) kurang punya pengalaman praktis dalam hal Computer Graphic Programming. bagus tuh kalo anda bikin satu thread khusus untuk tutorial memulai Computer Graphic Programming mulai dari awal (asumsi audience punya pengalaman di C programming, tetapi nol di graphic), berikut tools yang digunakan.
kalo boleh request: tutorial mengenai OpenCV dan/atau OpenGL.

ditunggu!
not all the problems could be solved by the sword, but sword holder take control of problems.
ForSa versi mobile: http://www.forumsains.com/forum?wap2

Fariz Abdullah

Karya yang hebat, khususnya di mata awam seperti saya..Gak nututi otak saya..Tapi di kalangan programmer tentu ini sangat menarik..Prof Ksatria benar..Lanjut Boss..
[move]DOUBT EVERYTHING AND FIND YOUR OWN LIGHT[/move]

Farabi

Maaf, saya membutuhkan banyak uang untuk membangun keluarga baru, orang orang tidak pernah mengingat saya, dan saya selalu mengeluarkan uang untuk mempelajari ilmubaru. Natural jika kemudian saya memutuskan untuk tidak mengajarkannya kepada siapa siapa.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.