曲线拟合问题
问题描述
[42:43]
输入:给定平面上系列点(xi,yi),i=1,2,...,n
输出:一条参数曲线,拟合这些点
👆 [42:50]非函数型曲线
解决方法
f:R1→R2
{x=x(t)y=y(t)
t∈[0,1]
存在的问题
❓ x=x(t),用x(t)拟合数据点xi,但xi与t没有关系,如何拟合?
答:需要人为构造这个关系。即构造(ti,xi),这个过程称为参数化,ti是参数。
即,x(t)拟合点(ti,xi),y(t)拟合点(ti,yi)
基于曲线参数化的曲线拟合问题
{x=x(t)y=y(t)
t∈[0,1]
矢量符号化表达: p=p(t)=(x(t)y(t))
然后极小化误差度量:
E=∑ni=1||(x(ti)y(ti))−(xiyi)||2=∑ni=1||p(ti)−pi||2
曲线参数化
构造(ti,xi)和(ti,yi)主要是如何取ti
通常t0=0,tn=1
❓ 对数据点(xi,yi),对应哪个参数𝑡i?
答:求数据点所对应的参数(点列的参数化):一个降维的问题!
下面的参数化方法以二维为例。
均匀参数化 Equidistant (uniform) parameterization
𝑡i+1−𝑡i=const
例如:𝑡i=i,得到的点对为{(1,x1),(2,x2),...,(n,xn)}和{(1,y1),(2,y2),...,(n,yn)}
缺点:Geometry of the data points is not considered
👆 用 uniform 角处比较尖锐,更好的参数化方法会得到更平滑的曲线。
弦长参数化 Chordal parameterization
𝑡i+1−𝑡i=||ki+1−ki||
Chordal 参数的距离与邻居点的距离成正比
中心参数化 Centripetal parameterization
𝑡i+1−𝑡i=√||ki+1−ki||
老师没有解释这种方法
Foley parameterization
老师没有解释这种方法
Involvement of angles in the control polygon
ti+1−ti=||ki+1−ki||⋅(1+32ˆαi||ki−ki−1||||ki−ki−1||+||ki+1−ki||+32ˆαi+1||ki+1−ki||||ki+1−ki||+||ki+2−ki+1||)
with
ˆαi=min(π−αi,π2)
and
αi=angle(ki−1,ki,ki+1)
四种方法的比较
点的参数化对曲线拟合的影响很大,需要好的参数化!
按照老师的意思,似乎得到的曲线越光滑,说明参数化越好。
参数化的本质是降维。即把曲线原本所在的空间,嵌入到参数空间。
如果降维的维度不对,或维度对了但分布不好,都会导致降维结果不好。[58:40]
曲面参数化
三维的点找二维的参数:一个降维的问题!
参数化约束:保持边长、网格面积、角度,就能得到比较好的参数结果。
曲面参数化的应用
- 纹理映射
- 地图绘制
可展曲面展成平面不会扭曲。
球面不可展,展开必定扭曲。
本文出自CaterpillarStudyGroup,转载请注明出处。 https://caterpillarstudygroup.github.io/GAMES102_mdbook/