求助:CAD的样条插值算法
来源:百度知道 编辑:UC知道 时间:2024/05/25 08:05:15
在CAD中,用鼠标点四个点画出一条B样条曲线,其中含有六个控制点,我想问一下控制点是怎么求出来的,急,请大侠帮帮忙...
就是说,在四个拟合点(插值点)已知的情况下,算出它的控制多边形的六个点的坐标,怎么算出来, 麻烦说的详细一点哈,谢谢 (附CAD中DXF文件中的拟合点和控制点的坐标)
就是说,在四个拟合点(插值点)已知的情况下,算出它的控制多边形的六个点的坐标,怎么算出来, 麻烦说的详细一点哈,谢谢 (附CAD中DXF文件中的拟合点和控制点的坐标)
%============均匀三次B样条曲线插值===========
%定义变量:
%X:原始资料,d:控制顶点
%n:数据条数,k:B样条的次数
%/*======Copyright@时光牧者( http://hi.baidu.com/junus ).==========*/
%/*======Email: firt123@163.com ==============================*/
X=load('data.txt');
n=length(X); %得数据维数;
%A:方程系数-----------------------------
A=zeros(n+2);
A(1,1)=1;A(1,2)=-2;A(1,3)=1;
A(n+2,n)=1;A(n+2,n+1)=-2;A(n+2,n+2)=1;
for i=2:(n+1)
A(i,i-1)=1;
A(i,i)=4;
A(i,i+1)=1;
end
%e:方程右边.得到的控制点首尾与插值数据相同.且与控制首末连线相切
e=[0,0];
e(n+2,:)=[0,0];
for i=2:n+1
e(i,:)=6*X(i-1,:);
end
%得到控制点,
d=inv(A)*e;
%画出图形
hold on
%原始数据,红色,点
plot(X(:,1),X(:,2),'r.');
%控制多边形,蓝色,线
plot(d(:,1),d(:,2),'b');
%插值B样条曲线
uu=(0:0.01:1);
x=0;y=0;
for j