2011-11-19 23 views
53

documentation khá mơ hồ về những gì thực sự xảy ra khi các phương pháp này được sử dụng. Ai đó có thể giải thích làm thế nào Matrix thực sự ảnh hưởng đến Bitmap mà nó đang được thiết lập? Họ sử dụng thuật ngữ liên kết trong đó, nhưng tôi không rõ ràng về cách mà thuật ngữ đó áp dụng để phối hợp dữ liệu (chỉ sử dụng nó liên quan đến thao tác chuỗi trước).Tìm kiếm giải thích về post/pre/set Translate (trong đối tượng Matrix) và cách sử dụng chúng

Trả lời

124

Các phương thức thiết lập sẽ thay thế Ma trận hiện tại bằng các giá trị mới, bỏ qua bất kỳ Ma trận nào có chứa trước đó. Phương thức trước và sau sẽ áp dụng một phép biến đổi mới trước hoặc sau bất kỳ Ma trận hiện hành nào có chứa.

Trong ví dụ này, luân chuyển sẽ bị bỏ qua vì chúng ta đang sử dụng phương pháp đặt và m sẽ chỉ chứa một bản dịch:

Matrix m = new Matrix();

m.setRotate (90);

m.setTranslate (100, 100);

Trong ví dụ này, ma trận cuối cùng sẽ được một bản dịch tiếp theo vòng xoay cảng gồm:

Matrix m = new Matrix();

m.setTranslate (100, 100);

m.postRotate (90);

Trong ví dụ cuối cùng, ma trận cuối cùng sẽ được một vòng quay tiếp theo là một bản dịch:

Matrix m = new Matrix();

m.setTranslate (100, 100);

m.preRotate (90);

Có một số thông tin trong này (khá dài) Bài viết:

http://www.satyakomatineni.com/akc/display?url=displaynoteimpurl&ownerUserId=satya&reportId=2898

Hy vọng nó giúp.

+1

Một số bình luận về tọa độ mà nó sử dụng cũng sẽ là siêu trong câu trả lời này. ví dụ: "xoay vòng theo sau là bản dịch" khá rõ ràng: nhưng làm thế nào để đạt được điều này theo trục x & y? Làm thế nào để xoay một cái gì đó về điểm trung tâm của nó và không phải là phối hợp gốc. – RichieHH

+1

Câu hỏi đặt ra là sự khác biệt giữa các phương pháp trước/sau/bộ. Các tài liệu api khá rõ ràng về các biến thể khác nhau của mỗi phép biến đổi. Tất nhiên là có một số hệ quả đối với các giá trị tham số khi bạn áp dụng các phép biến đổi theo các thứ tự khác nhau, nhưng đó là một chút chủ đề ở đây. – Albin

+0

Điều này giúp rất nhiều, tôi nghĩ rằng rất nhiều mà các nhóm phát triển Android nên bao gồm nó trong tài liệu của họ. – tim687

Các vấn đề liên quan