interparc软件

Distance based interpolation along a general curve in space

软件应用简介

interparc软件

A common request is to interpolate a set of points at fixed distances along some curve in space (2 or more dimensions.) The user typically has a set of points along a curve, some of which are closely spaced, others not so close, and they wish to create a new set which is uniformly spaced along the same curve.

When the interpolation is assumed to be piecewise linear, this is easy. However, if the curve is to be a spline, perhaps interpolated as a function of chordal arclength between the points, this gets a bit more difficult. A nice trick is to formulate the problem in terms of differential equations that describe the path along the curve. Then the interpolation can be done using an ODE solver.

As an example of use, I’ll pick a random set of points around a circle in the plane, then generate a new set of points that are equally spaced in terms of arc length along the curve, so around the perimeter of the circle.

theta = sort(rand(15,1))*2*pi; 

theta(end+1) = theta(1); 

px = cos(theta); 

py = sin(theta); 



100 equally spaced points, using a spline interpolant.

pt = interparc(100,px,py,’spline’);

% Plot the result 

plot(px,py,’r*’,pt(:,1),pt(:,2),’b-o’) 

axis([-1.1 1.1 -1.1 1.1]) 

axis equal 

grid on 

xlabel X 

ylabel Y 

title ‘Points in blue are uniform in arclength around the circle’

You can now also return a function handle to evaluate the curve itself at any point. As well, CSAPE is an option for periodic (closed) curves, as long as it is available in your matlab installation.

[~,~,foft] = interparc([],px,py,’spline’); 

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

界面展示

interparc软件

结果示意

interparc软件

规格 价

0元试用
0.0元人民币/月

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月24日
下一篇 2022年6月24日

相关推荐