Bagaimana cara menghitung kekuatan yang diberikan oleh kawat 2D yang membungkus benda 2D?


10

Asumsikan saya memiliki primitif fisika yang akan saya sebut "kawat", melilit lingkungan 2D (seperti yang dijelaskan dalam pertanyaan ini ).

Berikut ini ilustrasi tentang bagaimana tampilannya:

kawat melilit benda-benda permainan statis dan dinamis

Dalam contoh ilustrasi: Kotak ditarik ke atas (diangkat ke atas) oleh kawat, dan kotak itu menarik kawat ke bawah. Objek pada pegas didorong ke bawah oleh kawat, tetapi juga mendorong kawat ke atas.

Sementara saya belum menemukan cara mengimplementasikannya, anggap kawat akan meluncur bebas di titik-titik yang dililitkan.

Dalam simulasi fisika 2D (yaitu: berbasis bingkai) bagaimana Anda menghitung gaya (atau impuls) untuk diterapkan pada objek yang dilampirkan atau dibungkus oleh kawat seperti ini?


Seperti yang saya singgung dalam pertanyaan pertama saya , saya membayangkan bahwa jika satu-satunya objek non-statis "pada" kawat adalah massa pada akhirnya, maka gaya akan identik dengan sambungan panjang tetap antara massa dan titik sebelumnya itu di kawat.

Jawaban:


9

Kotak yang menarik kawat memberi tekanan pada kawat. Ketegangan adalah kekuatan, diukur dalam Newton. Jika kita membuat beberapa asumsi penyederhanaan (tidak ada gesekan antara kawat dan lingkungan) maka tegangannya sama di semua titik di sepanjang kawat.

Jika kami menganggap contoh Anda sebagai statis, maka tegangan pada kabel hanyalah berat kotak:

T = m * g

di mana m adalah massa kotak dan g adalah percepatan karena gravitasi (yaitu 9,8 m / s ^ 2). Catatan ini hanya valid dalam kasus statis, lihat di bawah untuk penjelasan tentang cara menghitungnya dalam kasus dinamis.

Gaya pada setiap belokan pada kawat kemudian hanya proyeksi dari tegangan ke arah yang relevan. Misalnya gaya di ujung objek pegas adalah gaya sepanjang kontak normal, besarnya:

F = T * cos(angle between wire and contact normal)

Dalam hal ini arah kontak normal akan menjadi dua sudut dari sudut antara segmen kawat. Gaya pada titik kedua yang ditandai pada lingkungan tidak relevan, karena tidak berdampak pada ketegangan atau apa pun.

Sekarang, dalam kasus dinamis, tegangan hanyalah kekuatan kendala yang Anda terapkan pada kotak agar tetap melekat pada kabel. Jadi jika mesin fisika berbasis impuls, ketegangannya adalah:

T = impulse / timestep

Ini mengarah ke algoritma umum untuk membungkus kawat di sekitar lingkungan juga. Properti penting adalah total panjang kawat. Hanya segmen terakhir yang perlu disimulasikan, semua segmen sebelumnya dapat dianggap diperbaiki. Jadi panjang segmen terakhir diketahui, cukup kurangi panjang segmen sebelumnya dari total panjang. Kemudian segmen terakhir bisa menjadi kendala pegas sederhana. Kemudian, cukup bagi segmen kapan saja itu bersinggungan dengan lingkungan, dan hapus bagian itu ketika tikungan lurus keluar.


Jadi - hanya untuk memperjelas: Saya akan memiliki massa bebas pada sambungan dengan panjang tetap yang menempel ke dunia di "tikungan" berikutnya di kawat. Saya mencari tahu impuls apa yang berlaku untuk sambungan ke kotak setiap frame, dan dari sana saya bisa mendapatkan ketegangan di kawat?
Andrew Russell

Juga - saya prihatin F = T * cos(angle between wire and spring axis). Sudut yang mana, tepatnya? Juga: Saya tidak berpikir bahwa (dalam simulasi) ada cara yang masuk akal untuk memiliki kawat "tahu" bahwa ada pegas yang melekat pada objek itu.
Andrew Russell

@Andrew - Untuk poin pertama Anda, ya, gaya yang diterapkan pada kotak oleh sambungan menurut definisi sama dengan tegangan pada kabel. Untuk poin kedua, Anda benar, ini tidak terlalu jelas, sebenarnya sudut antara kawat dan titik kontak normal. Saya telah mengedit jawaban untuk membuatnya lebih jelas.
Niall

4

Saya sangat menghargai kekecewaan Anda pada utas berbasis kawat ini, ini adalah masalah yang sulit untuk dipecahkan. Kami tidak pernah membuat tabrakan bekerja dengan sempurna, tetapi simulasi kendala pasti dapat dilakukan dan langsung.

Batasan kawat sebenarnya hampir identik dengan batasan jarak reguler. Alih-alih dua titik kendala Anda memiliki n +1 untuk kawat dengan segmen n, satu untuk setiap simpul - pada titik akhir Jacobian identik dengan batasan jarak (yaitu itu seperti d / | d | di mana d adalah vektor antara titik), dan untuk node internal Jacobian adalah sesuatu seperti (a / | a | - b / | b |) di mana a dan b adalah vektor dari node ke node yang berdekatan. (Maaf, sudah beberapa tahun sejak saya menyentuh ini ...)

Anda tidak dapat memalsukannya, "hanya segmen terakhir yang dinamis" karena, seperti dalam contoh Anda, objek dapat berinteraksi dengan segmen lainnya, tetapi Anda hanya perlu mensimulasikan massa di ujung tali - di bagian dalam tali dapat tidak bermassa. Impuls kendala yang dihitung pada setiap node perlu diterapkan pada objek yang bertabrakan pada node itu.

Berikut adalah beberapa makalah terkait:

Tiga yang pertama relatif baru dan harus banyak membantu. Halaman 75 dari kertas bawah menjelaskan batasan "multibar" yang pada dasarnya adalah sebuah kawat.

Semoga berhasil :)

raigan


0

Ide dasarnya adalah bahwa panjang tali tetap sama. Jika ditekan, Anda harus membuat "titik split" di sana. Kemudian tali menentukan di sisi mana ia terpasang, karena tidak dapat "tumbuh" ke arah itu. Karena itu melekat pada sesuatu di sebelah kanan, seutas tali di sebelah kiri akan menjadi lebih pendek dan potongan di antara titik perpecahan dan titik terlampir akan menjadi sedikit lebih lama. Lalu, seperti kata Niall, hitunglah ketegangan kawat. Bagaimana saya akan melakukan ini adalah untuk menghitung ketegangan dari setiap "potongan" tali. Anda kemudian dapat menggunakan ini untuk menentukan kekuatan yang terlibat.

Semoga ini membantu.


Tidak juga, maaf.
Andrew Russell
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.