Điều này bắt đầu như một nhận xét về nhận xét về câu trả lời của @ bummzack, nhưng đã phát triển quá lâu.
làm thế nào tôi có thể xác định có bao nhiêu phân khúc
Có hai cách tiếp cận. Đầu tiên chỉ là thuật toán tiêu chuẩn để hiển thị đường cong Bézier: các điểm điều khiển tạo thành một hộp giới hạn của đường cong, vì vậy nếu tất cả các điểm kiểm soát nằm trong epsilon của đoạn đường từ điểm bắt đầu đến điểm cuối bạn xấp xỉ là một đường; mặt khác, bạn chia nhỏ bằng thuật toán de Casteljau. Epsilon được chọn theo lỗi bạn muốn trong kết quả cuối cùng. (Để hiển thị, nó thường là 0,5 pixel).
Cách tiếp cận khác là một sàng lọc sử dụng số học khoảng. Lấy độ dài của đường từ đầu đến cuối làm giới hạn dưới và tổng độ dài của các đường qua các điểm kiểm soát làm giới hạn trên. Một lần nữa, chia nhỏ theo yêu cầu của các yêu cầu lỗi cuối cùng của bạn.
Người ta thường chia nhỏ ở t = 0,5, nhưng thuật toán de Casteljau cho phép phân tách tại bất kỳ điểm nào, vì vậy nếu bạn có một khối Bézier với các điểm kiểm soát C_0 đến C_3 và C_2 gần phân đoạn đường giữa các điểm cuối hơn C_1, bạn có thể thấy rằng phân tách tại một trong 1/3 hoặc 2/3 cho giới hạn chặt hơn. Tôi đã không làm việc thông qua đại số để biện minh cho việc nào sẽ tốt hơn, nhưng bạn có thể thử nghiệm và báo cáo lại nếu muốn. Nếu không có gì khác, tôi muốn chỉ ra rằng tùy chọn là có.