Làm thế nào để tính toán có bao nhiêu đa giác tôi có thể đặt bên trong một đa giác?


9

Tôi thường sử dụng qgis. Tôi giải thích vấn đề của mình bằng một ví dụ: có một khu rừng (hình học không đều1) và một cây (geomery2). Tôi muốn biết số lượng cây tối đa mà rừng có thể chứa. Hơn nữa, tôi muốn một đầu ra shapefile của bố trí tốt nhất của những cây này trong rừng.nhập mô tả hình ảnh ở đây


3
Vấn đề hay ....
WKT

Tôi không biết làm thế nào tôi thậm chí sẽ bắt đầu. Âm thanh như một vấn đề độ / thuật toán Maters.
HeikkiVesanto

2
Nếu bạn có thể có quyền truy cập vào bản dùng thử ArcGIS miễn phí (hoặc tải xuống R miễn phí), phần mềm Môi trường mô hình hóa không gian địa lý có một gencirclesinpolys (Generate Circles In Polygons)công cụ hữu ích.
Giuse

2
Bạn đang tìm kiếm một công cụ để giải quyết các vấn đề về Đóng gói nhưng tôi không biết về bất kỳ vấn đề nào đối với QGIS
underdark

1
@Joseph Tôi đã sử dụng công cụ Môi trường mô hình hóa không gian địa lý, nó hoạt động. Thật không may, công cụ tạo ra sự sắp xếp thường xuyên của các vòng tròn (hoặc hình lục giác) trong giới hạn của đa giác, điều này ngụ ý rằng hình dạng đầu ra không hiển thị (nhất thiết) tính năng tốt nhất của các tính năng, ý tôi là số lượng tối đa có thể của nó.
ksatzu

Câu trả lời:


5

Dùng thử ứng dụng này trực tuyến svgnest.com/

các bước: 1. svg tạo một tệp (như trong Hình 1); 2. Đi đến liên kết và tải lên Svg; 3. Chọn bằng chuột cho đa giác container; 4. bắt đầu

sau một số lần lặp, bạn có thể khóa và tải xuống tệp svg (xem Hình 2)

NB: đa giác và vòng tròn phải nằm trong cùng một tệp svg

Hình 1

Hình 2


4

Vấn đề thú vị!

Tôi đã làm một điều tương tự với đa giác không đều (trong trường hợp này, các tòa nhà được đóng gói để không chồng chéo)

nhập mô tả hình ảnh ở đây

Sử dụng postgresql và postgis, và python. Thuật toán thô

  • Tìm điểm ngẫu nhiên trong hộp giới hạn của đa giác (ST_En phong bì)
  • Nếu điểm bên ngoài đa giác, quay lại một bước
  • Tạo một hình học cho cây tập trung vào điểm ngẫu nhiên này
  • Nếu nó trùng với bất kỳ cây được đặt hiện tại (ST_Overlaps), hãy quay lại để bắt đầu
  • Thêm cây tại điểm
  • Trở lại điểm bắt đầu

Tôi không thể đảm bảo điều này sẽ mang lại sự tối ưu toàn cầu, bạn cần một thuật toán 'đóng gói vòng tròn' cho điều đó (như những người khác đã đề cập).

Nó sẽ tiếp tục mãi mãi, vì vậy bạn sẽ cần đặt một số mã để quyết định khi nào nên thoát, ví dụ:

  • khi diện tích kết hợp của các cây được đặt là một tỷ lệ phần trăm diện tích đa giác nhất định
  • khi phải mất nhiều hơn N lần lặp để tìm một cây không chồng chéo.

Theo Circle Packaging trên Wikipedia, mật độ đóng gói tốt nhất đạt được với lưới hình lục giác. Có thể tạo lưới như vậy bằng MMQGIS, khoảng cách dựa trên kích thước cây của bạn, mà tôi giả sử là giống hệt nhau. Sau đó đặt một cây trên mỗi đỉnh. Nhưng sau đó, bạn có vấn đề là biết nơi đặt lưới để tối đa hóa số lượng cây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.