[英]Generating a cubic bezier curve from rough points
我正在尋找一種使我的應用程序在徒手模式下產生更平滑結果的方法。 現在,它只是簡單地添加每個mousemove點,並由此創建一個多邊形。 我注意到現代矢量應用程序會生成貝塞爾曲線,以使其看起來更加平滑,我想知道這樣做是如何進行的? 那么,如何通過用戶對平滑曲線的粗略輸入來獲得4個點進行貝塞爾曲線插值?
謝謝
僅當您距離上一個點有一定距離閾值時才存儲新點如何?
像但不是完全一樣的ransac(請參閱Ransac )在這里可以很好地工作。 Ransac同時找到一種解決方案,同時消除了異常值。 當從一小部分數據中生成假設並易於針對整個集合測試假設時,Ransac很好。 這很適合您的問題。
基本思路:
環:
為了使這個真正的ransac,您需要找到4的函數來解決您的原始問題。 天啊 也就是說,您需要能夠基於在步驟3中未消除的所有點來計算曲線。這就是我建議上述內容的原因。 它既快速又容易,並且可能使您非常接近,尤其是因為您實際上沒有明顯的異常值。
您也可以使用平滑樣條線。 如果您對GPL表示滿意,請查看GSL http://www.gnu.org/software/gsl/以獲得實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.