ฉันพยายามที่จะสร้างเฮลิคอปเตอร์แบบง่าย ๆ (สำหรับตอนนี้มันเป็นลูกบาศก์) จำลองในแบบ 3 มิติและฉันมีปัญหากับการหมุน เฮลิคอปเตอร์สามารถหมุนไปตามแกนสามแกน:
- หมุนตัวเองโดยใช้ใบพัดด้านหลัง: การหมุนแกน y
- เอียงไปทางซ้ายและขวาเพื่อไปทางซ้ายหรือขวา: การหมุนแกน z
- เอียงขึ้นและลงเพื่อย้อนกลับหรือไปข้างหน้า: การหมุนแกน x
ฉันต้องการที่จะสามารถควบคุมแต่ละแกนเป็นรายบุคคล จนถึงตอนนี้ฉันได้ลองใช้มุมออยเลอร์แล้ว แต่ไม่ว่าฉันจะใช้คำสั่งหมุนแบบใดฉันก็จะใช้ gimbal lock หรือ axes "switch places"
ฉันดูเหมือนว่าฉันต้องใช้ quaternions แต่ฉันไม่รู้วิธีควบคุมแกนแต่ละอันเนื่องจาก quaternions ใช้ทิศทางและมุม ฉันควรสร้างสามควอเทอร์เนียนและคูณพวกมันเข้าด้วยกันไหม? ฉันจะไม่จบลงด้วยปัญหาเดียวกันหรือไม่?
สิ่งที่แปลกคือถ้าฉันใช้นิ้วของฉันเพื่อเป็นตัวแทนของสามแกนของเฮลิคอปเตอร์ของฉัน (thumb up = y, index = z, middle = x) ดูเหมือนว่าฉันจะไม่พบปัญหาเหล่านั้น ทำไม?