Bằng đột quỵ của đường bezier khối Tôi ngụ ý vẽ đường cong 'A' với chiều rộng đường cụ thể 'w'.Đường viền của đường cong đường cong khối bezier
Làm thế nào tôi có thể lấy được các đường cong hình khối khác mô tả đường viền của đột quỵ bezier 'A'?
Bằng đột quỵ của đường bezier khối Tôi ngụ ý vẽ đường cong 'A' với chiều rộng đường cụ thể 'w'.Đường viền của đường cong đường cong khối bezier
Làm thế nào tôi có thể lấy được các đường cong hình khối khác mô tả đường viền của đột quỵ bezier 'A'?
Ohhh. Bạn muốn nhận được các đường cong bù đắp của một đường cong bezier.
Tin xấu. điều này là khó bởi vì những đường cong này không thể đơn giản được bắt nguồn bằng số. Chúng chứa tất cả các loại giao lộ, vòng lặp và những thứ khó chịu khác.
Mặc dù có một số xấp xỉ. Cách tiếp cận tốt nhất mà tôi đã đọc cho đến nay là từ một bài báo của Thomas F. Hain (Fast, Precise Flattening of Cubic Bézier Path and Offset Curves).
Ông làm phẳng, vì vậy giấy của ông chủ yếu là về phân hủy các đường cong bù đắp thành các đoạn thẳng và các đoạn cung tròn, nhưng bạn có thể hợp nhất chúng lại thành các beziers sau đó.
Để hiểu rõ hơn, bạn cũng có thể muốn đọc các giấy tờ liên quan khác của mình.
Bài báo cũng có trên citeseerx: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.106.5344&rep=rep1&type=pdf – ergosys
QPainterPathStroker Qt (mã nguồn mở và mã khá dễ đọc) sử dụng thuật toán được mô tả trong giấy nói trên để thực hiện những gì bạn muốn.
Việc cần làm là chính xác như những người khác đã giải thích rất khó. Đường cong bù đắp không phải là một Bezier khối và là rất khó. Sau đó, concavities sâu hơn so với các vấn đề giao cắt nguyên nhân.
Tin tốt là thông thường bạn muốn tính toán bù trừ đột quỵ để hiển thị, vì vậy chỉ cần độ chính xác pixel. Ngoài ra, các giao lộ khác nhau vẫn tạo ra đa giác được lấp đầy, nếu bạn quan sát quy tắc quanh co để điền đa giác. Vì vậy, bạn làm phẳng đường cong đầu tiên, sau đó bù đắp trong một thời trang tuyến tính, và nó sẽ trở thành một vấn đề đa giác đường thẳng.
Một số mã ở đây có thể được sử dụng như một thực hiện tham khảo: https://github.com/memononen/nanosvg
vào liên kết hiện tại để giấy Hain nếu có ai đang tìm kiếm đó là: http://www.cis.usouthal.edu/~hain/ chung/Ấn phẩm/Bezier/BezierFlattening.pdf – Fattie