Tôi đang tìm kiếm một công cụ hoặc thuật toán để phát hiện các đa giác lõm và chia chúng thành các đa giác lồi. Giống như được giải thích trong hình, đa giác màu xanh được chia thành đa giác A và B
Tôi đang sử dụng Arcpy theo Arcgis 10.1
Tôi đang tìm kiếm một công cụ hoặc thuật toán để phát hiện các đa giác lõm và chia chúng thành các đa giác lồi. Giống như được giải thích trong hình, đa giác màu xanh được chia thành đa giác A và B
Tôi đang sử dụng Arcpy theo Arcgis 10.1
Câu trả lời:
Dưới đây là một vài bước để xác định các đỉnh từ các phần lõm:
với bưu kiện: hình học giới hạn tối thiểu (thân tàu) -> bưu kiện
với bưu kiện: FeatureVerticesToPoint -> bưu kiện
với bưu kiệnHull: FeatureVerticesToPoint -> bưu kiệnHullPoints
với bưu kiện và bưu kiệnHullPoint: đối xứng Diff -> concavePoints
dựa trên những điểm đó, bạn có thể vẽ bissectrice để cắt đa giác của mình (khoảng cách mang theo đường thẳng), chọn các cạnh của tam giác Voronoï cắt nhau nhưng không chia sẻ một đoạn với ranh giới bưu kiện của bạn (chọn theo vị trí sau khi chia tam giác các đường ở các đỉnh), chọn đỉnh trên trang đối diện và tạo một đường (trỏ tới đường), chọn điểm gần nhất ở cạnh đối diện và tạo một đường (trỏ tới đường) ...
Cuối cùng, sử dụng các dòng ưa thích của bạn và các bưu kiện gốc với "tính năng cho đa giác" để phân chia các đa giác.