Tôi muốn vẽ bản đồ đa giác 2d dựa trên dữ liệu được cung cấp bởi một nguồn khác để dễ dàng phân tích các hành động trên bản đồ. Dữ liệu có định dạng sau:
1 ['2', '4', '5', '7', '17', '10']
2 ['1', '3', '4']
3 ['2', '11', '4']
4 ['1', '2', '3', '11', '13', '18', '5']
5 ['1', '4', '18', '17']
6 ['7', '8']
...
Số đầu tiên là ID của một nút, danh sách sau đây chứa ID của các nút lân cận. Vì số lượng hàng xóm của một nút khác nhau, tôi cần vẽ bản đồ đa giác.
Vì vậy, tôi đã cố gắng sử dụng đa giác Voronoi cho đại diện bản đồ. Vấn đề là: Làm thế nào tôi có thể xác định các điểm để đáp ứng tất cả các mối quan hệ khu phố? Tôi đoán lần thử đầu tiên của tôi ít nhiều là một lỗi trong chu kỳ thử và lỗi của tôi. Tôi đã sử dụng công cụ sfdp của graphviz để lấy các vị trí điểm của biểu đồ:
Sử dụng vị trí của các điểm dẫn đến biểu diễn bản đồ sau:
Vấn đề của phương pháp này là ví dụ các nút 4 và 1 là hàng xóm nhưng trong sơ đồ Voronoi, chúng không phải do vị trí của các nút. Vì vậy, đối với tôi phương pháp này thất bại.
Googling, tôi đã tìm thấy rất nhiều hướng dẫn tạo bản đồ bằng đa giác hoặc gạch nhưng tôi chưa tìm ra cách tôi có thể tạo bản đồ cho dữ liệu đã cho của mình. Tôi đoán có một cách tiếp cận bằng cách sử dụng (nhiều) hình lục giác / hình tam giác / hình vuông hoặc hỗn hợp để đạt được những gì tôi cần nhưng tôi không biết tôi sẽ tìm kiếm cái gì.
Có một từ khóa hoặc một thuật toán có thể giúp tôi ở đây?
Cập nhật / Kết quả : Để hoàn thiện: Đây là kết quả của tôi sau khi sử dụng các đề xuất của câu trả lời được chấp nhận: