Tại sao người ta sử dụng tứ phương?


15

Tôi đã sử dụng chúng như một hộp đen trong một thời gian, tôi chỉ tìm hiểu về toán học nhưng tôi chỉ muốn một số câu trả lời dứt khoát cho câu hỏi này.

Cho đến nay, lợi ích duy nhất tôi gặp phải là khả năng SLERP giữa hai góc độ - để đạt được hiệu ứng tương tự với một vectơ mà bạn cần một công việc khá xấu xí (về bản chất liên kết 0 và 2PI với nhau).


SLERP không chỉ là nội suy giữa hai góc độ: nó cũng có thể được thực hiện dễ dàng với ma trận. Nó có thể nội suy giữa hai hướng tùy ý, phức tạp hơn nhiều khi được thực hiện với ma trận.
Calmarius

Câu trả lời:


23

Đệ tứ giải quyết một vài vấn đề một cách thanh lịch:

  • Chúng nhỏ gọn như biểu diễn góc trục (4 giá trị vô hướng)
  • Chúng dễ dàng được chuyển đổi sang và từ các biểu diễn ma trận
  • Nội suy hoạt động từ mọi góc độ bắt đầu đến kết thúc mà không có vỏ đặc biệt
  • Họ không bao giờ trưng bày khóa gimbal

Bạn có thể giải quyết các vấn đề này với các biểu diễn khác, nhưng các quernions rất phù hợp với tính đơn giản và hiệu suất thuật toán của chúng.


1
điều này thật đúng với gì mà tôi đã tìm kiếm!
SirYakalot

@Kai Interpolation works from any start to end angle without special casing, thực sự có một trường hợp đặc biệt, khi chúng không nằm trên cùng một bán cầu của siêu cầu, đây thực sự là một trường hợp đặc biệt mà bạn phải xem xét, vì luôn có 2 hướng để nội suy vào mục tiêu và bạn muốn chọn bên phải
Maik

2
@Kai They never exhibit gimbal lock- điều đó không hoàn toàn đúng. Họ có thể, chỉ cần nhân lên q(Xaxis, 0) * q(YAxis, 90) * q(Zaxis, 20). Đúng là, chúng có thể được sử dụng để tránh khóa gimbal, nhưng ma trận, góc trục và các góc khác cũng vậy. Vì vậy, đó không phải là một tài sản duy nhất của tứ phương. Trong thực tế, bạn có thể làm điều đó với hầu hết các biểu diễn xoay, nhưng góc euler. Thông điệp thực sự duy nhất ở đây có thể là "Euler engles bị khóa gimbal", nhưng nó có thể bị ảnh hưởng bởi rất nhiều đại diện xoay vòng khác, không chỉ là tứ phương.
Maik

Hiệu suất của một bộ tứ thường không tốt hơn trong mọi trường hợp, ví dụ, việc quay một vectơ sử dụng ma trận 3x3 nhanh hơn so với sử dụng một bộ tứ. Đây là một bài báo thú vị về nó.
Maik

3

Việc sử dụng SLERP mà bạn đề cập là một trường hợp cụ thể của một thuộc tính tổng quát hơn của tứ phương: bạn có thể nội suy trơn tru giữa các giá trị xoay khác nhau.

Khi nội suy các giá trị xoay của các góc euler, bạn sẽ có các chuyển động trông kỳ lạ, và không có cách nào để nội suy các giá trị của các góc xoay trục (ngoài hai góc khác nhau trên cùng một trục).


+1. Người ta có thể nội suy giữa (w1, alpha1) và (w2, alpha2) bằng cách chuyển đổi các biểu diễn trục góc này thành quats và sau đó sử dụng SLERP. Tất nhiên, người ta có thể làm một việc như vậy thông qua sơ đồ / biểu đồ spline của Bezier / de Casteljau và sử dụng "đa giác / tập hợp" các bậc bốn quan trọng theo cách như vậy và đưa ra một phép quay phức tạp. Đây có lẽ là điều duy nhất mà các bậc bốn làm tự nhiên hơn các biểu diễn khác kể từ SLERP và multiSLERP hoặc các biến thể của chúng (NLERP, SQUAD) đưa ra các cặp trục / góc xoay trung gian nằm trên đường quay trắc địa / ngắn nhất. Thanh danh.
teodron
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.