1、簡介
軌迹點拟合的目的:使拟合後的曲線既光滑又同原來的點相差不遠,運用的算法分為插值和逼近兩大類。一般都用分段樣條的方式,比如BSpline、Bezier等。本文用的三次Bezier來進行插值,主要集中在Bezier控制點的計算上
2、算法介紹
a、梯形原則
b、角平分線和高度系數
3、算法總結
上述算法有幾個關鍵步驟:
計算前後兩段的角平分線,進而得到兩段的切線方向;
根據切線在拟合線段的同側和異側情況分别處理;
高度的選擇或者根據切線的交點,或者根據拟合線段的長度比例。
4、算法應用
上述算法在點不是太密集的情況下,表現還是不錯的。但是如果點比較密集,由于該算法是插值算法,是以拟合出來的曲線會比較扭。其實針對密集點或者是書寫軌迹上的點,可以采用逼近+插值的方式。下面是二次和三次Bezier。對于書寫速度慢導緻的扭現象,可以采用判斷弧長距離的方式規避,比如如果目前弧長大于10,才進行拟合。