ข้อจำกัดความรับผิดชอบ: ฉันเป็นโปรแกรมเมอร์เกมมืออาชีพและใช้งาน quaternions เกือบทุกวัน แต่พวกเขาก็ใกล้เคียงกับเวทย์มนตร์ดำสำหรับฉัน ฉันค่อนข้างอยู่บ้านกับคณิตศาสตร์ แต่ตัวเลขในจินตนาการมักทำให้ฉันสับสน ฉันมักจะปฏิบัติต่อ quats ว่ามีประโยชน์และจบลงด้วยการทวีคูณมากกว่าหนึ่งครั้ง ฉันพยายามให้เหตุผลกับพวกเขาเช่นเดียวกับการฝึกอบรมด้วยความสำเร็จที่ จำกัด
ทั้งนี้ ....
สิ่งที่ทำให้ฉันงุนงงคือต่อไปนี้ เมื่อฉันต้องการหมุนวัตถุรอบ ๆ มันเป็นแกนท้องถิ่นฉันคูณการหมุนด้วย quaternion ที่แสดงถึงการหมุนที่ฉันต้องการใช้ ดังนั้นจึงเป็นการหมุนในพื้นที่ท้องถิ่น
ตอนนี้ถ้าฉันต้องการหมุนรอบแกนในอวกาศโลกเหตุผลของฉันก็คือ: หมุนพื้นที่โลกเป็น quaternion ทวีคูณการผกผันของการหมุนวัตถุของฉันด้วย quaternion นี้ สิ่งนี้จะทำให้โลกหมุนของฉันในอวกาศ ทวีคูณการหมุนของฉันด้วยควอเทอร์ชันใหม่นี้ เช่น: newRot = oldRot * (ผกผัน oldRot * worldRot)
อย่างไรก็ตามสิ่งที่ฉันต้องทำคือ newRot = oldRot * (ผกผัน oldRot * worldRot) * oldRot
ทำไมฉันหลังจากคูณด้วย quat invat ยังคงต้องคูณกับ quat ของตัวเองก่อนที่จะใช้มัน ฉันรู้ว่าต้องมีเหตุผลที่สมบูรณ์ แต่ฉันไม่สามารถให้เหตุผลกับมันได้และมันก็น่าหงุดหงิดเหมือนฉัน ฉันลองคำถามต่าง ๆ และอะไรก็ตาม แต่ส่วนใหญ่ไปที่ลึกในคณิตศาสตร์ทำให้ฉันชัดเจนน้อยลง
ทุกคนที่สามารถอธิบายสิ่งนี้กับฉันเหมือนฉันอายุ 5 ขวบ?
I try to reason about them like I would with matrices
- จากนั้นคุณก็เดินไปถูกทางแล้ว หากคุณเข้าใจวิธีหมุนรอบแกนของวัตถุและแกนโลกโดยใช้เมทริกซ์คุณสามารถทำเช่นเดียวกันโดยใช้ควอเทอร์เนียน ลำดับการคูณนั้นเหมือนกันทั้งเมทริกซ์และควอเทอร์เนียน