ทำไมผู้คนถึงใช้ quaternions


15

ฉันใช้มันเป็นกล่องดำซักพักฉันเรียนรู้คณิตศาสตร์ แต่ฉันต้องการคำตอบที่ชัดเจนสำหรับคำถามนี้

จนถึงประโยชน์เพียงอย่างเดียวที่ฉันได้พบเจอเป็นการส่วนตัวคือความสามารถในการ SLERP ระหว่างสองมุม - เพื่อให้ได้เอฟเฟกต์แบบเดียวกันกับเวกเตอร์ที่คุณต้องทำงานอย่างน่าเกลียด


SLERP ไม่ได้เป็นแค่การแก้ไขระหว่างสองมุมเท่านั้นมันสามารถทำได้อย่างง่ายดายด้วยเมทริกซ์ด้วย มันสามารถแก้ไขระหว่างการหมุนสองทิศทางโดยพลการซึ่งมีความซับซ้อนมากขึ้นเมื่อทำกับเมทริกซ์
Calmarius

คำตอบ:


23

Quaternions แก้ปัญหาเล็กน้อยอย่างหรูหรา:

  • มีขนาดกะทัดรัดเท่ากับการแสดงมุมของแกน (4 ค่าสเกลาร์)
  • พวกมันถูกแปลงเป็นจากเมทริกซ์ได้อย่างง่ายดาย
  • การแก้ไขทำงานได้ทุกมุมตั้งแต่ต้นจนจบโดยไม่ต้องมีปลอกพิเศษ
  • พวกเขาไม่เคยแสดงกิมบอลล็อค

คุณสามารถแก้ไขปัญหาเหล่านี้ได้ด้วยการนำเสนอแบบอื่น แต่รูปแบบที่เหมาะสำหรับความเรียบง่ายและประสิทธิภาพขั้นตอนวิธี


1
นี่คือสิ่งที่ฉันกำลังมองหา!
SirYakalot

@ ไก่Interpolation works from any start to end angle without special casingมีกรณีพิเศษจริง ๆ เมื่อพวกเขาไม่อยู่ในซีกโลกของ hypersphere นี่เป็นกรณีพิเศษที่คุณต้องพิจารณาเนื่องจากมี 2 ทิศทางในการสอดแทรกเป้าหมายและคุณต้องการเลือก หนึ่งที่เหมาะสม
Maik Semder

2
@ ไก่They never exhibit gimbal lock- นั่นไม่เป็นความจริงเลย พวกเขาสามารถคูณq(Xaxis, 0) * q(YAxis, 90) * q(Zaxis, 20)ได้ จริงก็คือพวกมันสามารถใช้เพื่อหลีกเลี่ยงการล็อก gimbal แต่สามารถฝึกอบรมแกนมุมและอื่น ๆ นั่นไม่ใช่สมบัติเฉพาะของ quaternions ในความเป็นจริงคุณสามารถทำได้ด้วยการหมุนส่วนใหญ่ แต่เป็นมุมออยเลอร์ ข้อความที่แท้จริงเพียงอย่างเดียวที่นี่อาจเป็น "ออยเลอร์ engles ทุกข์ทรมานจากล็อก gimbal" แต่มันสามารถ avaoided โดยการหมุนเวียนอื่น ๆ มากมายไม่ใช่ quaternions
Maik Semder

ทั้งสองอย่างนั้นประสิทธิภาพของ quaternion โดยทั่วไปดีกว่าในทุกกรณีเช่นมันเร็วกว่าในการหมุนเวกเตอร์ด้วยเมทริกซ์ 3x3 มากกว่าการใช้ quaternion นี่คือบทความที่น่าสนใจเกี่ยวกับเรื่องนี้
Maik Semder

3

การใช้ SLERP ที่คุณพูดถึงเป็นกรณีเฉพาะของคุณลักษณะทั่วไปของ quaternions: คุณสามารถแทรกระหว่างค่าการหมุนต่าง ๆ ได้อย่างราบรื่น

เมื่อทำการสอดแทรกค่าการหมุนของมุมออยเลอร์คุณจะได้รับการเคลื่อนไหวที่ดูแปลก ๆ และไม่มีเหตุผลใด ๆ ที่จะสอดแทรกค่าของการหมุนของมุมแกน (อย่างมีนัยสำคัญ


+1 หนึ่งสามารถแก้ไขระหว่าง (w1, alpha1) และ (w2, alpha2) โดยการแปลงการเป็นตัวแทนมุมแกนเหล่านี้เพื่อ quats แล้วใช้ SLERP แน่นอนว่าเราสามารถทำสิ่งนี้ผ่านโครงการ Bezier / de Casteljau / spline และใช้ "รูปหลายเหลี่ยม / ชุด" ของคีย์ quaternions ในลักษณะดังกล่าวและเกิดการหมุนที่ซับซ้อน บางทีนี่อาจเป็นสิ่งเดียวที่ quaternions ทำมากกว่าการเป็นตัวแทนอื่น ๆ ตั้งแต่ SLERP และ multiSLERP หรือความผันแปร (NLERP, SQUAD) เกิดขึ้นกับแกนการหมุน / มุมคู่ที่อยู่บนเส้นทางการหมุนแบบ geodesic / shortest ความรุ่งโรจน์
Teodron
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.