注册 登录
编程论坛 Matlab

求等距偏置曲线

bqy442706146 发布于 2015-11-18 16:12, 3445 次点击
我用MATLAB软件实现等距偏置曲线,数据算法检查过了,都没有问题,但是就是出现不了我想要的。我想要让偏置曲线的对应点在基曲线对应点的切线的的垂线上。我附上我的程序,帮忙改改好吗?
只有本站会员才能查看附件,请 登录
这是我程序实现的,点与点没有对应在法线上;
只有本站会员才能查看附件,请 登录
我想要这样的。以下是我的程序,帮忙改改,谢谢。
x=[7.3 9.7 12.2 14.8 17.7 20.3 22.9 25.4];
y=[25.0 40.0 55.0 85.0 112.0 145.0 190.0 230.0];
p=polyfit(x,y,2);

根据拟合数据绘制基曲线
x1=linspace(7,30);
y1=polyval(p,x1);%根据拟合方程求值
plot(x,y,'ro',x1,y1,'k','linewidth',2.5)
xlabel('x轴'),ylabel('y轴表示C(x)'),title('图1 基曲线')
hold on

计算对应点的斜率、夹角、偏置点
q=polyder(p);%函数对多项式求导
k=polyval(q,x);
theta=atan(k);
d=4;
x0=x-d.*sin(theta);
y0=y+d.*cos(theta);

根据离散点拟合等距偏置曲线
n=polyfit(x0,y0,2);
x2=linspace(0,28);
y2=polyval(n,x2);%新的离散拟合曲线求对应值
plot(x0,y0,'^',x2,y2,'m','linewidth',2.2)
xlabel('x轴'),ylabel('y轴表示C1(x)'),title('等距偏置曲线')
2 回复
#2
bqy4427061462015-11-22 09:13
谁知道,帮忙支一招啊
#3
p1849922016-04-09 05:41
搞定了没有?
1