Tôi có một vấn đề lập trình liên quan đến việc tạo lưới cho lưới thành phố. Gần đây tôi đã tạo ra một máy phát điện lưới thành phố và tôi đã có thể tạo ra lưới đường cho mạng lưới mà hệ thống của tôi phát ra một cách đáng tin cậy. Tuy nhiên, bây giờ tôi bị mắc kẹt với việc tìm kiếm một phương pháp để tạo ra các lô và khoảng trống ở giữa các con đường. Cuối cùng, tôi muốn lưới thành phố có sự thay đổi độ cao và vì thế, tôi cần có khả năng lấp đầy khoảng trống giữa các con đường.
Đây là một ví dụ về những gì tôi có:
Tôi đã xem xét các phương pháp tam giác như Delauney Triangulation, nhưng đầu ra không đáng tin cậy (có thể do cách tôi đang sử dụng nó). Đây là một ví dụ khác cho thấy vấn đề (các đường màu đen là lưới đường, các đường màu đỏ là đầu ra Delauney):
Đối với hầu hết các phần, đầu ra Delauney theo lưới khi tôi trình bày nó chỉ với các đỉnh tạo nên các giao điểm. Tuy nhiên, đôi khi, các hình tam giác Delauney chồng lên nhau từ lưới đường (giống như với đường rộng ở trung tâm của hình ảnh). Tôi đang sử dụng một cổng as2Delauney cho Unity và tôi chỉ cần tạo một danh sách tất cả các đỉnh tạo nên các giao điểm và sau đó chuyển nó đến hàm Delauney và tôi tự hỏi liệu có điều gì tôi cần xem xét trước khi vượt qua một loạt các điểm và hãy để hàm sắp xếp nó ra
Có bất kỳ cân nhắc đặc biệt nào tôi cần lưu ý khi sử dụng Delauney cho loại hình tam giác này không, hoặc có bất kỳ phương pháp nào khác mà tôi có thể sử dụng để tạo phần điền cho lưới đường không?
Tôi đã nghĩ về việc xây dựng một chức năng cố gắng đi theo các giao lộ theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ cho đến khi nó lặp lại từ đầu, nhưng điều đó sẽ dẫn đến các vòng lặp vô hạn vì một số con đường là ngõ cụt.
Ngay bây giờ tôi không thực sự chắc chắn những gì cần tìm vì tôi thiếu thuật ngữ và google đã không mang lại kết quả như các phương pháp mà tôi có thể sử dụng để tạo ra các phần bổ trợ cho lưới đường (tuy nhiên có một số thứ tốt trong việc tạo thành phố, tuy nhiên thì không trên phần lưới).
Có ai có bất cứ kinh nghiệm với điều này?
Chỉnh sửa: Đây là cách hệ thống của tôi hoạt động:
Về cơ bản, tôi sử dụng một danh sách mở các dòng để phát triển mạng của mình và tôi kiểm tra các dòng chống lại một loạt các ràng buộc. Sau đó, tôi đi qua từng dòng và tôi tạo các giao điểm cho mỗi điểm bắt đầu và điểm cuối. Vì vậy, nếu kết thúc / bắt đầu đã có trong danh sách của tôi, tôi thêm điểm khác làm điểm đến cho giao lộ hiện tại.
Tôi kết thúc với một danh sách các đối tượng tùy chỉnh giữ vectơ vị trí của riêng chúng và tất cả các vectơ vị trí của các giao điểm mà nó kết nối. Sau đó, tôi tạo các điểm lưới cho giao lộ bằng cách kiểm tra các điểm cắt của các đường tạo thành hai bên đường, vì vậy tôi có các điểm đó theo ý của mình và tôi sử dụng chúng để tạo các hình tam giác cho lưới của mình.
Bây giờ tôi chỉ cần biết cách tổ chức chúng để tạo ra các phần tử điền vào nhiều giao lộ.