图像缩略图

弧间

版本1.3.0.0(6.81 KB)由 约翰·德雷科
沿空间中一般曲线的基于距离的插值

10.2K下载

更新2012年8月16日

查看许可证

一个常见的请求是沿空间中的某条曲线(2个或更多维度)以固定距离内插一组点。用户通常沿曲线有一组点,其中一些点的间距很小,另一些点的间距不太近,他们希望创建沿同一条曲线均匀分布的新点集。

假设插值是分段线性的,这很容易。然而,如果曲线是样条曲线,可能作为点之间的弦弧长度的函数进行插值,这就有点困难了。一个很好的技巧是用描述曲线路径的微分方程来描述问题。然后可以使用ODE解算器进行插值。

作为使用的例子,我将在平面中围绕一个圆圈挑选一组随机的点,然后在沿曲线周围围绕曲线围绕弧形长度同样地间隔开一组新的点。

θ=排序(rand(15,1))*2*pi;
θ(end+1)=θ(1);
px=cos(θ);
py=sin(θ);

100个等间距点,使用样条线插值。

pt=弧间(100,px,py,'样条');

%绘制结果
图(px,py,'r*',pt(:,1),pt(:,2),'b-o')
轴([-1.11.1-1.11.1])
轴相等
网格
xlabel X
伊拉贝尔
标题“蓝色的点在圆周围的弧长上是一致的”

现在还可以返回函数句柄,以在任意点计算曲线本身。同样,CSAPE也是周期(闭合)曲线的一个选项,只要它在matlab安装中可用。

[〜,〜,foft] = Interparc([],px,py,'样条');
foft(0:0.25:1)
ans=
0.98319 0.18257
-0.19064 0.98151
-0.98493 -0.17486
0.18634 -0.98406
0.98319 0.18257

引用为

约翰·德里科(2021年)。弧间(//www.tatmou.com/matlabcentral/fileexchange/34874-interparc),MATLAB中央文件交换。恢复.

Matlab释放兼容性
使用R2011a创建
兼容任何释放
平台兼容性
视窗 马科斯 Linux

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!