2
การปรับสมดุลแบบไดนามิกของยานอวกาศ
เรืออวกาศในเกมของฉันมีจุดประสงค์เพื่อให้ผู้เล่นสร้างขึ้นโดยมีแรงขับดันติดมาทุกที่ทุกเวลาด้วยการหมุน ขณะนี้ฉันมีรหัสสกปรกเพื่อหมุนเรือไปยังมุมที่กำหนด (เร่งความเร็วและลดความเร็ว) นี่คือตัวอย่างของเรือที่สมมาตรหันหน้าไปทางที่จุดสีแดงชี้บอกให้หมุนไปทางซ้าย อย่างไรก็ตามอย่างที่คุณคิดขึ้นอยู่กับตำแหน่งที่ผู้เล่นวางเครื่องขับดันบางครั้งกองกำลังเชิงเส้นที่ไม่พึงประสงค์กำลังส่งผลกระทบต่อเรือ ในกรณีนี้เรือเริ่มเคลื่อนที่ไปข้างหน้า ฉันอธิบายอย่างละเอียดว่ามันเป็นไปได้หรือไม่ที่จะหาแรงผลักสูงสุดที่ Thruster สามารถใช้เพื่อทำให้ไม่มีความเร็วเชิงเส้น (ในกรณีข้างต้นที่จะไม่มีใครเพราะไม่มีอะไรที่จะตอบโต้กองกำลังจากขับดันด้านหลังและคนหน้าฆ่าคนอื่น) สิ่งที่ฉันได้ทำมาในตอนนี้คือสูตรในการกำหนด "ประสิทธิภาพการเลี้ยว" เช่นการหมุนเกิดขึ้นเมื่อเทียบกับการเคลื่อนที่เชิงเส้น a - position vector to thruster a b - ตำแหน่งเวกเตอร์ไปยัง thruster b v1 - แรงจาก thruster a v2 - แรงจาก thruster b efficiencyDelta = a.cross (v1) / | v1 | - (a.cross (v1) + b.cross (v2)) / …