Tôi có một đa giác đơn giản (lồi hoặc lõm, nhưng không có lỗ) mà tôi cần phải cắt thành các phần với một đoạn đường thẳng. Tôi không chắc chắn làm thế nào để thực sự xác định có bao nhiêu đa giác kết quả sau khi lát, hoặc làm thế nào để nhóm các đỉnh.Làm thế nào để cắt một đa giác đơn giản với một dòng
Trường hợp lồi cơ bản luôn dẫn đến 2 đa giác phụ rất dễ dàng, nhưng làm cách nào để xử lý hình dạng lõm phức tạp? Lấy một hình đa giác "E" chẳng hạn. Một lát dọc có thể mang lại 4 đa giác. Làm thế nào tôi có thể xác định đỉnh nào tạo nên mỗi một trong những đa giác con đó?
Xác định Đa giác: Tôi có hai tùy chọn tại đây. Đa giác của tôi có thể là một danh sách có thứ tự các đỉnh, hoặc nó có thể là một mảng tam giác. Tôi thích một giải pháp sử dụng mảng tam giác. Nó sẽ được khá dễ dàng để lặp qua mỗi tam giác và cắt nó với dòng nếu họ giao nhau. Nhưng sau đó tôi không có ý tưởng làm thế nào để nhóm các tam giác vào các đa giác phụ mà kết quả.
Mã giả hoặc thậm chí là lời khuyên chung là tốt; triển khai C# là lý tưởng.
Đây có phải là sự trợ giúp nào không? http://stackoverflow.com/questions/1775457/generate-new-polygons-from-a-cut-polygon-2d – fredley