2012-01-08 24 views
7

Tôi đang sử dụng quaternion trong game, và tôi tự hỏi làm thế nào, khi tôi có hai quaternion định hướng, tôi có thể nhận được quaternion quay cần thiết để đi từ cái đầu tiên, q1, đến thứ hai, q2. Tôi tự học, vì vậy có thể có những giải pháp rõ ràng bị thiếu trong từ vựng của tôi.Khi tôi có hai quaternion định hướng, làm thế nào để tôi tìm quaternion xoay cần thiết để đi từ một đến khác?

Trong phương trình, những gì tôi đang làm khi tôi xoay từ người đầu tiên khác là như sau: q2 = r * q1

Tuy nhiên, bây giờ r là chưa biết. Các quy tắc về đại số cũng có ở đây không? Nếu đúng như vậy, tôi sẽ chia một quaternion cho một người khác, một cái gì đó tôi không thể tìm thấy một lời giải thích tốt cho trên internet.

Tôi đang sử dụng một chương trình được gọi là trò chơi nhà sản xuất

+1

Đó là lịch sự trên StackOverflow để chọn câu trả lời, nó đánh dấu câu hỏi là đã trả lời và thưởng cho người đã cung cấp câu trả lời tốt nhất. –

Trả lời

10

Để "chia" với một quaternion, bạn nghịch nó để nó quay ngược lại. Để đảo ngược một quaternion, bạn phủ nhận một trong hai w thành phần hoặc (x, y, z) thành phần, nhưng không phải cả hai từ đó sẽ để lại cho bạn với các quaternion cùng bạn bắt đầu với (một đầy đủ quaternion phủ định đại diện cho cùng một vòng quay).

Sau đó, hãy nhớ rằng quaternions không giao hoán. Vì vậy:

q2 = r*q1 
q2*q1' = r 

đâu q1' là quaternion đảo ngược và nó phải được nhân ở phía bên phải của q2 để có được kết quả đúng.

+0

Ồ, phải, cảm ơn bạn đã trả lời! Tôi không biết đảo ngược và liên hợp một quaternion cũng giống nhau. Điều này giải quyết tất cả mọi thứ! – Sindre

+3

Lưu ý: Liên hợp chỉ giống như nghịch đảo của các quaternion đơn vị (tức là quaternions có độ dài 1). Điều này là tốt ở đây vì quaternions quay là quaternions đơn vị, nhưng tôi nghĩ rằng điều quan trọng là chỉ ra nó là một trường hợp đặc biệt. – Medo42

5

Bạn nên có một cái nhìn để điều này page (euclideanspace), nó thực sự là thú vị cho tự giảng dạy và hiểu biết quaternions.

Ở đây bạn có arithmetics cho quaternion và cũng là một máy tính mà làm cho các hoạt động dành cho bạn:

http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/arithmetic/index.htm

Hy vọng nó giúp.

+0

Điều đó trông giống như một trang thực sự hữu ích, cảm ơn bạn đã liên kết! – Sindre

Các vấn đề liên quan