2013-04-08 48 views
7

Tôi có thể tìm thấy rất nhiều câu hỏi về việc chuyển quaternion thành vector hướng nhưng không có cách nào khác khiến tôi nghĩ mình đang làm điều gì đó sai, nhưng phải chịu đựng.Chuyển đổi vector hướng sang xoay vòng

Điều tôi đang cố gắng chỉ đơn giản là hiển thị hướng của ánh sáng định hướng bằng cách sử dụng mô hình mũi tên.

Hướng ánh sáng hướng là một vectơ đơn vị nhưng các mô hình được xoay bằng quaternions.

Vì vậy .. Làm cách nào để xoay mô hình này để phù hợp với hướng của ánh sáng?

Hoặc tôi phát điên và tôi không thể thực sự làm điều đó, bởi vì ánh sáng không có vị trí nhưng mô hình không?

Trả lời

10

Vectơ hướng không phải là vòng xoay được xác định, nó vẫn có một số lượng vô hạn các giải pháp khả thi. Xem không có thông tin về cách xoay quanh trục. Hai, vectơ là có thể như là một vectơ và một vòng quay (với một trung tâm có ý nghĩa) và trên thực tế là một ma trận được xác định đầy đủ.

Vì trong trường hợp của bạn, việc xoay vòng là vô nghĩa, chỉ cần sử dụng véc-tơ để tham chiếu (trừ khi ánh sáng của bạn chiếu sáng từ trên xuống hoặc ngược lại thì bạn cần một tham chiếu khác).

Vì vậy, lấy sản phẩm chéo của véc tơ hướng D của bạn và lên vectơ U cho vectơ bên S rồi chéo D và S cho một U n mới. Sau đó, sử dụng D, U n, S làm hàng (hoặc cột tùy thuộc vào cách quy tắc tính toán của bạn được thiết lập) dưới dạng ma trận. Ma trận để quaternion là toán học nổi tiếng.

+0

http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/ – Kit10

+0

Chi tiết để chuyển hướng & lên vectơ thành ma trận: https://stackoverflow.com/questions/18558910/direction-vector -ma-quay-ma trận –