Tôi có một loạt phép đo isometry [R | t] ma trận chuyển đổi, nghĩa là chúng là các phép biến đổi cứng nhắc 3D. Hiện tại tôi lưu trữ chúng dưới dạng Eigen Affine transformations, được biểu thị ở dạng nhỏ gọn, ví dụ: Eigen::AffineCompact3d
không lưu trữ hàng cuối cùng [0 0 0 1] dư thừa.Làm thế nào để biểu diễn ma trận biến đổi isometry nhỏ gọn trong Eigen?
Tôi cũng biết rằng có Eigen::Isometry3d
mà tôi đoán là typedef của Transform<double, 3, AffineCompact, Isometry>
.
Tôi sau Isometry vì, biến dạng nghịch đảo rẻ hơn nhiều (chuyển vị) so với nghịch đảo nghịch đảo chung. Tôi cũng biết rằng tôi có thể vượt qua một gợi ý, khi tôi sử dụng nghịch đảo() là affine_mat.inverse(Eigen::Isometry);
Nhưng tôi muốn nhận được hành vi nghịch đảo đẳng đảo mà không cần phải trả lời một cách thủ công. Nói cách khác, tôi muốn biết, cách tốt nhất để nhân rộng hành vi của Eigen::IsometryCompact3d
là gì đáng ngạc nhiên trong API Eigen?
Có tốt để có một nhóm nói chung represenation nói chung. Nhưng trong trường hợp của tôi, tôi đang thực hiện chuyển đổi rất nhiều vectơ, và biểu diễn ma trận hoạt động tốt nhất cho tôi. Tôi nghĩ rằng các nhà văn Eigen bằng cách nào đó đã bỏ lỡ điều này. – iNFINITEi