ปัญหาล็อก gimbal ถูกแก้ไขได้อย่างไรโดยใช้การแปลงเมทริกซ์แบบสะสม
ฉันกำลังอ่านหนังสือ "การเรียนรู้การเขียนโปรแกรมกราฟิก 3D สมัยใหม่" โดย Jason L. McKesson ณ ตอนนี้ฉันถึงปัญหาล็อก gimbal และวิธีแก้ปัญหาโดยใช้ quaternions แต่ที่นี่ที่หน้า Quaternions ส่วนหนึ่งของปัญหาคือเรากำลังพยายามเก็บการปฐมนิเทศเป็นชุดของการหมุนแกนสะสม 3 ชุด การวางแนวคือการหมุนไม่ใช่การหมุน และทิศทางไม่แน่นอนชุดของการหมุน ดังนั้นเราต้องปฏิบัติต่อการวางแนวของเรือในฐานะการปฐมนิเทศตามปริมาณที่กำหนด ฉันเดาว่านี่เป็นจุดแรกที่ฉันเริ่มสับสนเพราะฉันไม่เห็นความแตกต่างอย่างมากระหว่างการหมุนและการหมุน ฉันยังไม่เข้าใจว่าทำไมการปฐมนิเทศจึงไม่สามารถแสดงเป็นชุดการหมุนได้ ... นอกจากนี้: ความคิดแรกเกี่ยวกับจุดประสงค์นี้คือเพื่อให้การปฐมนิเทศเป็นเมทริกซ์ เมื่อเวลานั้นมาถึงการปรับเปลี่ยนการปฐมนิเทศเราเพียงแค่นำการแปลงไปใช้กับเมทริกซ์นี้โดยจัดเก็บผลลัพธ์เป็นทิศทางปัจจุบันใหม่ ซึ่งหมายความว่าทุก ๆ yaw pitch และ roll ที่ใช้กับการวางแนวปัจจุบันจะสัมพันธ์กับการวางแนวปัจจุบันนั้น ซึ่งเป็นสิ่งที่เราต้องการอย่างแม่นยำ หากผู้ใช้ใช้การหันเหที่เป็นบวกคุณต้องการให้หันเหที่จะหมุนพวกเขาเมื่อเทียบกับที่พวกเขากำลังชี้ปัจจุบันไม่ได้เกี่ยวข้องกับระบบพิกัดคงที่บางส่วน แนวคิดฉันเข้าใจ แต่ฉันไม่เข้าใจว่าการสะสมการแปลงเมทริกซ์เป็นวิธีแก้ปัญหานี้ได้อย่างไรรหัสที่ให้ในหน้าก่อนหน้านั้นไม่ใช่แค่นั้น นี่คือรหัส: void display() { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClearDepth(1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); …