2009-12-03 40 views
19

Tôi đã thực hiện các hoạt động 2D và 3D, bao gồm đồ họa, trong nhiều năm và chưa bao giờ sử dụng quaternions nên tôi không có cảm giác về chúng. Tôi biết rằng chúng có thể được sử dụng cho các hoạt động nhất định khó khăn trong góc Euler và cũng có thể được sử dụng để tìm vòng quay cần thiết để phù hợp nhất với một tập tọa độ (X1, X2 ... XN, X = (xyz)) vào một cái khác (X1 ', X2' ... XN ').Khi nào tôi cần sử dụng quaternions?

Có những nơi quaternions là cần thiết không? Và có những nơi họ đưa ra các giải pháp thanh lịch hơn hoặc hiệu quả hơn không?

+0

từ Wikipedia: Những đại diện của phép quay bởi quaternion là nhỏ gọn hơn và nhanh hơn để tính toán hơn đại diện bởi các ma trận. – dnagirl

+0

Đối với những người cũng đang tìm kiếm một liên kết để nhấp: http://en.wikipedia.org/wiki/Quaternion –

Trả lời

17

Chúng có dấu chân bộ nhớ nhỏ hơn so với ma trận xoay và chúng hiệu quả hơn cả biểu diễn ma trận và góc/trục.

Ngoài ra:

  • Nó rất dễ dàng để suy giữa hai quaternion, đó là hữu ích cho các phong trào camera mịn, vv
  • Unit bình thường hóa quaternion điểm nổi bị khuyết tật làm tròn ít hơn đại diện ma trận.
1

Lợi thế của quaternion trên ma trận không chỉ là tính toán nhanh hơn, mà chủ yếu là do biểu diễn ma trận của phép quay liên tiếp xung quanh góc tùy ý cuối cùng gây ra lỗi vòng tròn nổi đáng sợ và không còn đại diện . "Phục hồi" một ma trận xoay là tính toán đắt hơn bình thường hóa một quaternion. Do đó, quaternions nên được lựa chọn trên ma trận xoay nguyên chất.

+0

Quaternions thực sự mất nhiều hơn một chút số học, và các quats liên tiếp sẽ tích lũy các lỗi roundoff nhiều như ma trận. Lợi thế của chúng không mang theo sự dư thừa được tìm thấy trong các ma trận trực giao. – DarenW

+1

@DarenW Trong khi các phép nhân thành công của quaternion sẽ nhận được lỗi, sự khác biệt là việc tái chuẩn hóa chúng đòi hỏi một dấu chấm-sản phẩm và một gốc sqaure. Orthonormalizing một ma trận là một nhiệm vụ phức tạp hơn nhiều. –

3

Với quaternions bạn cũng xử lý vấn đề của khóa gimbal. Và chúng dễ làm việc hơn khi bạn muốn thực hiện các phép xoay tùy ý.

+2

Khóa Gimbal chỉ là một thuộc tính của các góc Euler. Độc lập với đại diện của vòng quay. – Calmarius

3

Quaternions có nhiều ưu điểm so với Góc Euler và thường thích hợp hơn cho phép quay 3D:

  • dễ dàng hơn (và cũng xác định) nội suy giữa quaternion (hoặc: định hướng): phong trào dẫn đến có vận tốc góc không đổi xung quanh một trục đơn, thường mang tính thẩm mỹ hơn. Quá trình này được gọi là "slerp" và quan trọng đối với hoạt ảnh/xoay vòng. Hơn nữa, nội suy quaternion không bị khóa Gimbal.
  • Chúng dễ dàng được chuẩn hóa lại.

Nhược điểm:

  • Những bất lợi chính là họ đòi hỏi nhiều hơn một chút toán học và ít trực quan hơn Euler/góc trục cát đăng.
  • So với ma trận chuyển đổi affine, Quaternions chỉ chứa xoay vòng, và không dịch và chia tỷ lệ.
0

So với góc Euler, chúng đơn giản hơn để soạn và tránh vấn đề khóa gimbal.

So với ma trận xoay, chúng ổn định về số lượng và biểu diễn (4 số) nhỏ gọn hơn.

2

Ưu điểm của quaternion

  1. Nhanh nhân
  2. nhanh đến/từ chuyển đổi ma trận
  3. Tránh bổ sung (từ tính) tiếng ồn (quy mô, cắt), và đại diện cho xoay tinh khiết
  4. đơn giản xoay suy , trong trường hợp tùy chỉnh cho hoạt ảnh thời gian thực có thể được sử dụng nội suy tuyến tính.
  5. Một số thao tác phức tạp có sẵn, tích hợp xoay nhanh, phân tách xoay xoay

Nhược điểm

  1. Chuyển đổi vectơ không quá nhanh như với ma trận 3x3.
  2. Có 4 vô hướng, nhưng đại diện xoay nhỏ gọn có thể sử dụng chỉ 3.
Các vấn đề liên quan