Làm thế nào để tôi sử dụng chính xác tứ phân vị cho xoay và dịch một đối tượng?


7

Cho đến bây giờ tôi đã xử lý xoay và dịch riêng biệt một đối tượng nhất định bằng cách sử dụng các quernions bình thường cho phép quay và vectơ để dịch. Tuy nhiên, tôi muốn sử dụng tứ phân vị kép để xử lý cả dịch và xoay của đối tượng khi tôi dự định sử dụng chúng cho động lực học cơ thể cứng nhắc sau này. Về cơ bản tôi muốn nó để tôi có thể có một đối tượng với một tứ phân vị ban đầu, nhân số kép này với một tứ phân vị thứ hai mô tả sự thay đổi trong chuyển vị của nó và kết thúc với một tứ phân vị thứ ba mô tả vị trí cuối cùng của nó sau khi thay đổi được áp dụng. Tôi muốn một đối tượng nhất định (tôi sẽ sử dụng một hình cầu làm ví dụ) để xoay cục bộ xung quanh trung tâm khối lượng riêng của nó nhưng để di chuyển toàn cầu. Đây là video về loại chuyển động mà tôi đang tìm kiếm rõ ràng đã được thực hiện bằng cách sử dụng bộ tứ kép:

http://www.youtube.com/watch?v=k9I7Bbj02O8

Thật không may, liên kết đến ví dụ này mã nguồn không tải. Bây giờ tôi đã thử làm cho nó hoạt động nhiều lần, tuy nhiên vật thể tôi đang di chuyển (lại là một quả cầu) sẽ di chuyển toàn cầu nhưng sẽ không quay cục bộ hoặc sẽ xoay cục bộ nhưng sẽ không di chuyển toàn cầu (chuyển động của nó dựa trên cách nó được quay). Về cơ bản, điều này tổng hợp những gì tôi đang làm:

1) Khi bắt đầu chương trình, tôi có một đối tượng với bộ tứ kép ban đầu mô tả vị trí và góc quay của nó (Tôi sẽ gọi đây là bộ tứ Q1).

2) Tôi thay đổi tốc độ quay và tốc độ tịnh tiến của vật thể. Từ đó, tôi tính toán một phần tư thứ hai, Q2, mô tả sự thay đổi của nó trong vòng quay và gia tốc.

3) Sau đó, tôi nhân hai số bậc bốn với nhau (Tôi đã thử cả hai thứ tự nhân vào thời điểm này nhưng tôi tin rằng thứ tự đúng được cho là Q2 * Q1). Công thức tôi đang sử dụng để nhân chúng với nhau là Q1 * Q2 = r1 * r2 + e (r1 * d2 + d1 * r2).

4) Tại thời điểm này, tôi có một tứ phân vị thứ ba sẽ mô tả vị trí và hướng mới của đối tượng. Phần thực của phần kép là phần tứ mô tả hướng của nó và phần kép có thể được chuyển đổi thành vectơ dịch bằng công thức t = 2 * dual * (real ') trong đó real' là liên hợp của phần thực của phần thứ ba tứ phương.

Tuy nhiên phương pháp này không tạo ra kết quả mà tôi muốn. Kết quả mà tôi nhận được có thể dự đoán được, chúng không phải là loại tôi đang tìm kiếm, đó là xoay vòng cục bộ nhưng là dịch thuật toàn cầu. Ai đó có thể vui lòng cho tôi biết phương pháp chính xác để làm điều này?


Gần đây tôi đã tìm thấy bài viết này iri.upc.edu/people/thomas/ con / tinEE-TRO-2014.pdf đã giúp tôi rất nhiều để hiểu một sử dụng kép. Hi vọng điêu nay co ich.

Câu trả lời:


3

Vâng, trong trường hợp bạn vẫn quan tâm, nếu bạn muốn bắt đầu với tứ phương - chỉ là biến đổi cơ bản - qua lại (nghĩa là biến đổi cứng nhắc) - bạn có thể muốn có một cái nhìn thoáng qua về một bài báo mới bắt đầu về chủ đề này

Hướng dẫn cho người mới bắt đầu về Đệ tứ: Chúng là gì, Cách thức hoạt động và Cách sử dụng chúng cho phân cấp nhân vật 3D

Liên kết: http://wscg.zcu.cz/wscg2012/short/A29-full.pdf

Chow cho bây giờ,

Simons


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.