玫瑰有刺 发表于 2014-3-26 10:52

已知三维曲线上的点,怎么计算该曲线的长度

x=;
y=;
z=;

上面是已知的三维曲线上的点,第一点和最后一点分别该曲线的两个端点,请问该如何估算该曲线的长度?

牛小贱 发表于 2014-3-26 12:00

本帖最后由 牛小贱 于 2014-3-26 14:59 编辑

首先要拟合出这一条三维曲线,然后用微积分的知识解决。先举个例子:对于二维曲线,假如半径为r的圆,其1/4的圆的弧长计算。x=r*cos(t);
y=r*sin(t);
(dL)^2=(dx)^2+(dy)^2=r^2*(dt)^2;
dL=r*dt;代码:symsr
L=r*int('L',0,pi/2);结果:L =1/2*r*pi
同理,对于三维空间:
(dL)^2=(dx)^2+(dy)^2+(dz)^2
%matlab程序
syms t
x=3*t;
y=3*t*t;
z=2*t*t*t;
dL=sqrt((diff(x))^2+(diff(y))^2+(diff(z))^2);
%积分上限验证,证明t从0到1
tx=solve(x-'x','t'),tx=subs(tx,3);
ty=solve(y-'y','t'),ty=subs(ty,3);
tz=solve(z-'z','t'),tz=subs(tz,2);
L=int(dL,0,tx)结果:L =5 LZ可以自己想一下,希望对你有所帮助!!

玫瑰有刺 发表于 2014-3-26 14:24

牛小贱 发表于 2014-3-26 12:00
首先腰拟合出这一条三维曲线,然后用微积分的知识解决。先举个例子:对于二维曲线,假如半径为r的圆,其1/4 ...

谢谢,我试试看
页: [1]
查看完整版本: 已知三维曲线上的点,怎么计算该曲线的长度