|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
大家好!我根据浙江大学 刘刚 文章(见附件),编写了一个基于离散曲率信息重构曲线的程序,请高手指点一下程序中的问题:
clc
clear
format long
%k=[0.0141 0.0085 0.0017 -0.0052 -0.0115 -0.0164 -0.0193 -0.0199];
%k=[0.0152 0.0152 -0.0252 -0.0252 -0.0252 -0.0252 0.0072 0.0072];
k=[0.008 0.0813 0.1240 0.0946 0.0469];
N=length(k);
Z=1;
KK=(N-1)*Z;
C=zeros(1,KK);
D=1;
ds=11.45/4;
ddx=zeros(1,KK);
ddy=zeros(1,KK);
nn=zeros(1,Z);
r=zeros(1,N);
AX=zeros(1,KK);
AY=zeros(1,KK);
AX(1)=0;
AY(1)=3;
for m=1:(N-1)
for n=1:Z
D=D+1;
nn(n)=(k(m+1)-k(m))*(n-1)/Z+k(m);
C(D)=nn(n);
if nn(n)==0
r(n)=1000000;
else
r(n)=abs(1/nn(n));
end
if nn(n)>0
alfa=ds/(2*3.1415928*r(n))*360;
else
alfa=ds/(2*3.1415928*r(n))*360+90;
end
ddx(D-1)=2*r(n)*sind(alfa/2)*cosd(alfa/2);
ddy(D-1)=2*r(n)*sind(alfa/2)*sind(alfa/2);
Tran=[1 0 0;0 1 0;ddx(D-1) ddy(D-1) 1];
Trot=[cosd(alfa) -sind(alfa) 0;sind(alfa) cosd(alfa) 0;0 0 1];
TTT=[AX(D-1) AY(D-1) 1]*Tran*Trot;
AX(D)=TTT(1);
AY(D)=TTT(2);
end
end
plot(AX,AY,'r-'); %重构曲线
hold on
%拟合对象
AAX=[0 1 2 3 4 5 6 7 8 9 10];
AAY=[3 3.012 3.056 3.156 3.336 3.62 4.032 4.596 5.336 6.276 7.44];
plot(AAX,AAY,'b-');
|
|