Có thực sự không phải là một giải pháp đơn giản cho vấn đề của bạn, đặc biệt là với các đường cong (beziers và splines). Trên đầu trang của các phức tạp của cắt đa giác, có những thách thức đáng kể của việc xây dựng lại các đường cong cắt (giả sử bạn muốn kết quả clipping vẫn còn như beziers và splines và không chỉ 'phẳng' đường xấp xỉ).
Gần đây tôi đã phát hành bản cập nhật beta * cho thư viện đa giác cắt 'Clipper' của tôi mà không làm đường đa giác và cắt dòng (cũng có thể là đường cong). Tuy nhiên, trong khi thư viện chính được viết bằng Delphi, C++ & C#, mã beta mới cho đến nay chỉ trong Delphi mà có thể không giúp bạn. Tuy nhiên, nếu bạn nhìn vào mã bạn sẽ thấy lý do tại sao tôi nói không có giải pháp 'đơn giản'.
- Chỉnh sửa 15 tháng 7 năm 2011: Bản cập nhật này chưa bao giờ vượt quá bản beta này và bây giờ đơn giản là 'bằng chứng-khái niệm'. Nó bây giờ dựa trên một phiên bản cũ của thư viện Clipper của tôi và sẽ cần viết lại chính để duy trì và mở rộng được. (Tại một số giai đoạn I có thể xem lại nó, nhưng hiện tại tôi đang có ý định cải thiện hơn nữa các thư viện lõi.) Tuy nhiên, điều này mã 'proof-of-concept' Delphi có thể được tải here
Nguồn
2010-10-15 16:41:41
Cảm ơn.Bạn đã sử dụng phương pháp nào để cắt đường cong? – Buzz
Cách tiếp cận tôi đã thực hiện ban đầu là làm phẳng các đường cong (và ghi nhãn từng phân đoạn phẳng) vì thuật toán cắt chỉ hoạt động trên các đường. Khi giao lộ được tìm thấy, các đoạn nhãn được sử dụng để xác định các phân đoạn đường cong (thuật toán de Casteljau). Sau đó, nó là một vấn đề của việc áp dụng lại thuật toán de Casteljau cho đường cong ban đầu, nhưng chỉ cho các phần của đường cong có chứa giao lộ. Điều đó có ý nghĩa? –
Có. Có lý. Cảm ơn! – Buzz