Processing math: 100%

曲线拟合问题

问题描述

[42:43]

输入:给定平面上系列点(xi,yi),i=1,2,...,n

输出:一条参数曲线,拟合这些点

👆 [42:50]非函数型曲线

解决方法

f:R1R2

{x=x(t)y=y(t)

t[0,1]

存在的问题

x=x(t),用x(t)拟合数据点xi,但xit没有关系,如何拟合?
答:需要人为构造这个关系。即构造(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+1ki||

Chordal 参数的距离与邻居点的距离成正比

中心参数化 Centripetal parameterization

𝑡i+1𝑡i=||ki+1ki||

老师没有解释这种方法

Foley parameterization

老师没有解释这种方法

Involvement of angles in the control polygon

ti+1ti=||ki+1ki||(1+32ˆαi||kiki1||||kiki1||+||ki+1ki||+32ˆαi+1||ki+1ki||||ki+1ki||+||ki+2ki+1||)

with

ˆαi=min(παi,π2)

and

αi=angle(ki1,ki,ki+1)

四种方法的比较

点的参数化对曲线拟合的影响很大,需要好的参数化

按照老师的意思,似乎得到的曲线越光滑,说明参数化越好。
参数化的本质是降维。即把曲线原本所在的空间,嵌入到参数空间。
如果降维的维度不对,或维度对了但分布不好,都会导致降维结果不好。[58:40]

曲面参数化

三维的点找二维的参数:一个降维的问题!

参数化约束:保持边长、网格面积、角度,就能得到比较好的参数结果。

曲面参数化的应用

  • 纹理映射

  • 地图绘制


可展曲面展成平面不会扭曲。
球面不可展,展开必定扭曲。


本文出自CaterpillarStudyGroup,转载请注明出处。 https://caterpillarstudygroup.github.io/GAMES102_mdbook/