通过三角网格的线 (MatLab)

line passing through a triangulated mesh (MatLab)

我有一个三角网格(如图所示),我想找到穿过这些点的直线(见图)。我尝试了 2D 拟合,但我失去了网格的形状。 有人可以建议一种方法来获得一条线吗?

没有实际的 3D 路径或网格可以使用,我模拟了一个并向您展示了如何使用 3D 样条进行插值:

% simulating a 3D path and plotting it
N = 1000;
rng(1);
xyz = cumsum([randn(N,1)+0.8, randn(N,1)+0.2, randn(N,1)*2]);
plot3(xyz(:,1),xyz(:,2),xyz(:,3),'-b','LineWidth',2);
box on; view(30,30);

% interpolating using 3D splines.
% "smoothness" determines how many points to skip.
smoothness = floor( N/30 );
hold on;
fnplt(cscvn(xyz(1:smoothness:end,:)'),'r',2);
hold off;

结果显示如下(原始路径为蓝色,插值路径为红色):