图片缩略图

interparc

version 1.3.0.0 (6.81 KB) by 约翰D 'Errico
空间中沿一般曲线的基于距离的插值

10.1 k下载

更新2012年8月16日

查看许可协议

一个常见的要求是在空间(2维或更多维)的某条曲线的固定距离上插入一组点。用户通常在一条曲线上有一组点,其中一些点的间距很近,另一些点的间距不那么近,他们希望创建一个沿着同一条曲线均匀间距的新集合。

当插值假定为分段线性时,这很容易。然而,如果曲线是条样条,也许插值为点之间的弦弧长度的函数,这就有点困难了。一个很好的方法是用微分方程来描述沿着曲线的路径。然后可以使用ODE求解器进行插值。

作为一个使用示例,我将在平面上随机选择一组围绕圆的点,然后生成一组新的点,这些点按照沿曲线的弧长等距分布,也就是围绕圆的周长。

θ=排序(兰德(15日1))* 2 *π;
θ(终端+ 1)=θ(1);
px = cos(θ);
py =罪(θ);

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

pt = interparc (100 px, py,样条);

%绘制结果
情节(px, py, r *, pt (: 1), pt(:, 2),“这”)
轴([-1.1 1.1 -1.1 1.1])
轴平等
网格
包含X
ylabel Y
标题“蓝色的点在圆周围的弧长是一致的”

现在,您还可以返回一个函数句柄来在任意点计算曲线本身。同样,cape也是周期性(闭合)曲线的一个选项,只要它在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

引用作为

约翰D 'Errico(2021)。interparc(//www.tianjin-qmedu.com/matlabcentral/fileexchange/34874-interparc), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2011a
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!