Tôi đang cố gắng hiểu hệ thống tọa độ 2d thạch anh, Hiện tại tôi đang đọc sách hướng dẫn tham khảo của Apple và cuốn sách cũ "Đồ họa 2d cho nhà phát triển mac os x".Không thể hiểu được việc chuyển đổi hệ thống phối hợp đồ họa lõi iOS, cần hỗ trợ
Tôi hiểu khái niệm về không gian người dùng và khái niệm không gian thiết bị mà không gian thiết bị có thể có hệ tọa độ mặc định và tọa độ không gian thiết bị không thể sửa đổi được và chúng tôi ánh xạ không gian người dùng bằng cách sửa đổi hệ thống tọa độ của nó. để thiết bị-không gian để đạt được kết quả mong muốn.
- phần thứ nhất của vấn đề
Quartz đồ họa 2d cho mac book os x nhà phát triển cho biết:
Khi chuyển đổi một hệ tọa độ, bạn phải có hệ thống phối hợp khác để so sánh nó với. Phép biến đổi cung cấp một ánh xạ tương đối từ một hệ tọa độ này sang hệ tọa độ khác. Khi bạn vẽ trong hệ tọa độ được chuyển đổi, phép biến đổi ánh xạ đồ họa trở lại hệ tọa độ đầu tiên. Sự xuất hiện của đồ họa trong hệ tọa độ cố định bị ảnh hưởng bởi việc chuyển đổi .
tôi không được in đậm điểm này.
Và
Quartz 2D programming guide nói:
thạch anh hoàn thành thiết bị độc lập với một riêng biệt phối hợp hệ thống sử dụng không gian lập bản đồ nó vào hệ tọa độ của đầu ra thiết bị thiết bị không gian sử dụng hiện tại ma trận chuyển đổi hoặc CTM. Ma trận là một cấu trúc toán học được sử dụng để mô tả hiệu quả tập hợp của các phương trình có liên quan. Ma trận chuyển đổi hiện tại là một loại ma trận biến đổi được gọi là biến đổi affine, được ánh xạ điểm từ một không gian tọa độ này sang không gian khác bằng cách áp dụng dịch thuật, xoay vòng và chia tỷ lệ (các phép tính di chuyển, xoay và thay đổi kích thước hệ tọa độ) .
Ma trận chuyển đổi hiện tại có mục đích phụ: Nó cho phép bạn chuyển đổi cách đối tượng được vẽ. Ví dụ: để vẽ một hộp được xoay 45 độ, bạn xoay hệ tọa độ của trang (CTM) trước khi vẽ hộp. Quartz vẽ đến thiết bị đầu ra bằng cách sử dụng hệ tọa độ xoay.
Lẫn lộn là "Quartz vẽ đến thiết bị đầu ra bằng hệ tọa độ xoay.", Nếu tôi muốn xoay một đối tượng (hình ảnh vv) và xoay vòng khác với điều gì xảy ra? Chúng tôi có toàn bộ tọa độ xoay mọi thứ sẽ được rút ra được xoay?
Tôi đang thử các thử nghiệm khác nhau nhưng không thể quấn đầu xung quanh, tôi tạo một hình ảnh bản vẽ hai dòng sao chép hệ tọa độ dưới cùng bên trái trong photoshop và sau đó thêm vào dự án của tôi để xem rõ cách tọa độ hoạt động bằng cách gọi CGContextRotateCTM(myContext, 45);
phương pháp drawrect, nhưng nó không làm bất cứ điều gì để hình ảnh mà tôi đã bao gồm trong tập tin xib bằng cách sử dụng xây dựng giao diện đặt hình ảnh bên trong uiimage.
mã này là từ thạch anh hướng dẫn lập trình 2D
CGContextRef myContext = UIGraphicsGetCurrentContext();
CGRect contextRect = self.bounds;
CGContextTranslateCTM(myContext, 0, contextRect.size.height);
CGContextRotateCTM(myContext, 45); //my modification
CGContextScaleCTM(myContext, 1, -1);
float w, h;
w = contextRect.size.width;
h = contextRect.size.height;
CGAffineTransform myTextTransform;
CGContextSelectFont (myContext, "Helvetica-Bold", h/10, kCGEncodingMacRoman);
CGContextSetCharacterSpacing (myContext, 10);
CGContextSetTextDrawingMode (myContext, kCGTextFillStroke);
CGContextSetRGBFillColor (myContext, 0, 1, 0, .5);
CGContextSetRGBStrokeColor (myContext, 0, 0, 1, 1);
myTextTransform = CGAffineTransformMakeRotation(0);
CGContextSetTextMatrix (myContext, myTextTransform);
CGContextShowTextAtPoint (myContext, 0, 50, "Quartz 2D", 9);
nhưng mã này được sửa đổi văn bản được vẽ trên màn hình không phải là hình ảnh tôi đã thêm?
- Thứ hai phần của vấn đề
Đây cũng là từ hướng dẫn lập trình Quartz 2D:
... áp dụng một chuyển đổi mà dịch nguồn gốc đến góc trên bên trái góc của ngữ cảnh PDF và chia tỷ lệ y thành -1.
Sử dụng phép biến đổi tỷ lệ để phủ nhận tọa độ y thay đổi một số quy ước trong bản vẽ Quartz. Ví dụ: nếu bạn gọi CGContextDrawImage để vẽ hình ảnh vào ngữ cảnh, hình ảnh là được sửa đổi bằng biến đổi khi được đưa vào điểm đến. ...
Tôi đã làm điều này -1 nhưng không ảnh hưởng đến hình ảnh và điều -1 này vẫn chưa rõ ràng đối với tôi.
Tôi đã đọc tài liệu này nhiều lần, thử tìm kiếm trên google nhưng không có hướng dẫn hữu ích và cũng không có sách mới nhất chỉ có sách được viết năm 2004, 2005, 2006. Có thể giúp bất kỳ ai tìm hiểu sâu hơn.
Mong đợi chờ đợi câu trả lời, thực sự cần trợ giúp. Cảm ơn bạn.
thats chính xác những gì tôi muốn nó xóa các khái niệm của tôi. Cảm ơn bạn rât nhiêu. – Pamy