2013-02-25 30 views
7

Tôi đã tìm thấy chức năng chuyển đổi affine (xoay, cắt, dịch, chia tỷ lệ) ở Athens/Cairo trong Pharo Smalltalk.Làm thế nào để biến đổi phối cảnh với Athens/Cairo trong Pharo Smalltalk

Tôi đang tìm một phép biến đổi phối cảnh. cái này nó có hoàn toàn có thể xảy ra được không? Ít nhất có vẻ như không có phương pháp tiện lợi cho điều này trong API Cairo.

perspective transformation

+0

Ngoài ra, bạn nên yêu cầu trong danh sách gửi thư Pharo. –

+1

Tôi đã hỏi danh sách Cairo về điều này một số năm trước cho cổng VisualWorks. Họ nói không có gì. Mặc dù có một số quan tâm đến phần của các nhà phát triển trong việc cung cấp một phương tiện để làm như vậy cho các mẫu của ImageSurface. Nhưng tôi không nghĩ nó đã từng xảy ra. –

Trả lời

6

Không có chuyển đổi phối cảnh, vì ma trận được sử dụng trong tính toán là ma trận affin 2x3, không thể tạo ra phép biến đổi đó (không có sự kết hợp giữa tỷ lệ/vòng quay trên không gian tọa độ 2-D). OpenGL sử dụng ma trận 4x4 đầy đủ cho các phép biến đổi tọa độ (tốt, thường là cột dịch 3x3 +), nhưng đủ để tạo các phép biến đổi như phép chiếu phối cảnh.

2

Tôi cũng luôn quan tâm đến loại chuyển đổi này.

Không chỉ ở Pharo, mà còn các nền tảng khác như Java (Java2D) hoặc canvas HTML5.

Cho đến nay, những phát hiện của tôi chỉ ra rằng dường như không thể.

Dường như các thư viện này chỉ đơn giản là không được phát triển với 3D trong tâm trí, hoặc hỗ trợ 3D. Ở khắp mọi nơi tôi nhìn tôi 2 gợi ý chủ yếu là:

  • này nên được thực hiện sử dụng OpenGL
  • thực hiện việc chuyển đổi trên đầu trang của Cairo/Java2D/vải

Nó không ý định của tôi để âm thanh tiêu cực, shuts muốn chia sẻ kết quả tìm kiếm của tôi và có thể giúp bạn tiết kiệm thời gian.