Tôi đang cố gắng hiển thị phần có thể nhìn thấy của bản đồ đẳng cự hình kim cương. Hệ tọa độ "thế giới" là hệ thống 2D Cartesian, với tọa độ tăng theo đường chéo (về mặt hệ tọa độ xem) dọc theo các trục. Các tọa độ "xem" chỉ đơn giản là độ lệch chuột so với góc trên bên trái của chế độ xem.
Thuật toán kết xuất của tôi hoạt động bằng cách vẽ các đường chéo, bắt đầu từ góc trên bên phải của chế độ xem và di chuyển theo đường chéo sang phải và xuống, tiến tới hàng tiếp theo khi đến cạnh bên phải. Khi vòng lặp kết xuất đến góc dưới bên trái, nó dừng lại.
Có các chức năng để chuyển đổi một điểm từ tọa độ xem sang tọa độ thế giới và sau đó sang tọa độ ánh xạ.
Mọi thứ hoạt động khi kết xuất từ ô 0,0, nhưng khi chế độ xem cuộn quanh kết xuất cần bắt đầu từ một ô khác. Tôi không thể tìm ra cách xác định gạch nào gần góc trên bên phải nhất.
Hiện tại tôi chỉ đơn giản là chuyển đổi tọa độ của góc trên bên phải sang tọa độ bản đồ. Điều này hoạt động miễn là gốc tọa độ xem (góc trên bên phải) ở bên trong thế giới, nhưng khi tiếp cận các cạnh của bản đồ, tọa độ ô bắt đầu rõ ràng trở nên không hợp lệ.
Tôi đoán điều này sôi lên khi hỏi "làm thế nào tôi có thể tìm thấy giao điểm giữa trục X thế giới và trục X xem?"