Quarternion được sử dụng trong phép quay không gian. Trong phần 1 này, tôi sẽ nói về cách sử dụng sơ lược của nó trong phép quay không gian.

Bạn đang xem: Quaternion là gì

Các bài viết khác trong loạt bài về quaternion:

Quaternion được định nghĩa như là một số phức có ba thành phần ảo:

*

Đừng mường tượng quaternion là một cái gì đó bốn chiều, đầu bạn sẽ nổ tung. Các thành phần ảo

*

có thể được coi như ba vector đơn vị của trục tọa độ x, y, z. Và một quaternion có thể được viết lại như sau:

*

Với

*

là một vector trong không gian 3 chiều, và

*

là một đại lượng vô hướng chỉ độ lớn (nói chung là một con số). Dễ tưởng tượng hơn rồi đúng không!

Áp dụng vào phép quay không gian của chúng ta. Giả sử bạn có một vector trục quay

*

(vector 

*

phải là vector đơn vị, tức

*

) và góc quay

*

(dương khi quay cùng chiều với vector, theo nguyên tắc nắm tay phải) thì chúng ta sẽ có một quaternion quay như sau:

*

Ví dụ, bạn muốn tạo một phép quay một góc 120 độ (tức 2/3 pi radian) quay trục

*

. Đầu tiên chúng ta sẽ chuẩn hóa (normalize) vector

*

thành vector đơn vị

*

.

*

Và từ đó, chúng ta có quaternion cho phép quay là:

*

Để thực hiện phép quay, bạn cần một cái gì đó để quay. Ví dụ tôi có một điểm

*

trong không gian có tọa độ

*

được xác định trong không gian bởi vector

*

thì phép quay điểm

*

theo

*

được định nghĩa là:

*

Trong đó

*

là vector tọa độ của điểm

*

sau khi xoay. Và

*

là nghịch đảo của

*

. Cụ thể trong trường hợp này:

*

Trong trường hợp này, nghịch đảo bằng lượng liên hợp do trị tuyệt đối của quaternion trong phép quay bằng 1. Nếu bạn thắc mắc tại sao có công thức biến đổi quarternion, xin xem phần sau.

Xem thêm: Phim Chính Kịch Là Gì, định Nghĩa Về Phim Chính Kịch

Sau đó, chúng ta sẽ sử dụng phép nhân quartenion. Hãy ghi nhớ phép nhân quaternion không có tính giao hoán. Bạn có thể nghiên cứu thêm về phép nhân quaternion tại đây. Trong blog này tôi chỉ đề cập tới kết quả của phép nhân. Cho 2 quaternion

*

*

thì tích

*

là:

*

Sử dụng công thức trên để áp vào ví dụ của chúng ta (biến đổi

*

theo

*

) và làm phép nhân rất điên cuồng (tôi khuyên bạn nên dùng máy vi tính), chúng ta sẽ ra được:

*

*

Hinh bên mô tả phép quay ví dụ của chúng ta. Chúng ta có thể thấy nếu chúng ta quay quanh trục

*

một góc 120 độ thì tọa độ

*

sẽ tráo cho nhau thành

*

. Phù hợp với kết quả của phép nhân ở trên.

Xem thêm: Cho Minh Hỏi Chữ Tiếng Anh Sở Giáo Dục Và đào Tạo Tiếng Anh Là Gì

Vừa rồi tôi vừa mới giới thiệu sơ lược về cách sử dụng quaternion trong phép quay. Trong phần sau, tôi sẽ nói đi sâu về phần toán, việc tối ưu hóa nó trong lập trình và so sánh với các phép biến đổi khác.

Chuyên mục: Hỏi Đáp