%NURBS;非均匀有理B样条(这是一个生成曲线的程序)
%
function nurbs4(w)
%
%
P=load('Pi.txt');%初始Pi点
w=load('Wi.txt');%权值
%二维转换到三维
Q(:,1)=P(:,1).*w(:);
Q(:,2)=P(:,2).*w(:);
Q(:,3)=w(:);
%
%
%
for i2=1:10
    %U11(i2,:)=linspace(U(i2),U(i2+1),n1);
    %U1=U11';
    Qz11=Q(2*i2-1,:);Qz1(i2,:)=Qz11;
    Qz22=Q(2*i2,:);Qz2(i2,:)=Qz22;
    Qz33=Q(2*i2+1,:);Qz3(i2,:)=Qz33;
end
%
%
%u=0.05;
%u=0:0.005:1;
n1=20;
u=linspace(0,1,n1);
%
%
for i3=1:10
    for i4=1:n1
            Q11(n1*(i3-1)+i4,:)=(1-u(i4))*Qz1(i3,:)+u(i4)*Qz2(i3,:);
            Q12(n1*(i3-1)+i4,:)=(1-u(i4))*Qz2(i3,:)+u(i4)*Qz3(i3,:);
            Q10(n1*(i3-1)+i4,:)=(1-u(i4))*Q11(n1*(i3-1)+i4,:)+u(i4)*Q12(n1*(i3-1)+i4,:);
            %Q10(n1,:)=u(n1)*Qz3(10,:);
    end
end
%
Q100(1:20,:)=Q10(1:20,:);
Q100(20:20+19,:)=Q10(21:40,:);
Q100(39:58,:)=Q10(41:60,:);
Q100(58:77,:)=Q10(61:80,:);
Q100(77:77+19,:)=Q10(81:100,:);
Q100(77+19:77+19+19,:)=Q10(101:120,:);
Q100(77+19+19:77+19+19+19,:)=Q10(101+20:120+20,:);
Q100(77+19+19+19:77+19+19+19+19,:)=Q10(101+20+20:120+20+20,:);
Q100(77+19+19+19+19:77+19+19+19+19+19,:)=Q10(101+60:180,:);
Q100(77+19+19+19+19+19:77+19+19+19+19+19+19,:)=Q10(101+60+20:200,:);



%

for i5=1:191
    QQ(i5,1)=Q100(i5,1)./Q100(i5,3);
    QQ(i5,2)=Q100(i5,2)./Q100(i5,3);
end
plot(QQ(:,1),QQ(:,2),'r',Q100(:,1),Q100(:,2))
QQ=QQ./1000;
save QQ;

%if u>=U(2)&&u<U(3)
%    Q21=(1-u)*Qz1(2,:)+u*Qz2(2,:);
%    Q22=(1-u)*Qz2(2,:)+u*Qz3(2,:);
%    Q20=(1-u)*Q11+u*Q12;
%end

%