matlab spap函数,新手想请教下,spap2函数怎么用
%9-78行=70行;
i=1;
%Point(1,:)=[9.068,-2.106,9.074];
Point(1,:)=[9.084,-2.106,9.074];
Point(2,:)=[8.778,-1.994,8.655];
Point(3,:)=[8.472,-1.881,8.235];
Point(4,:)=[8.166,-1.769,7.815];
Point(5,:)=[7.920,-1.678,7.477];
Point(6,:)=[7.912,-1.668,7.475];
Point(7,:)=[5.491,-1.668,7.475];
Point(8,:)=[2.969,-1.668,7.475];
Point(9,:)=[2.955,-1.668,7.475];
Point(10,:)=[2.946,-1.668,7.476];
Point(11,:)=[2.937,-1.669,7.478];
Point(12,:)=[2.919,-1.672,7.484];
Point(13,:)=[2.911,-1.674,7.488];
Point(14,:)=[2.903,-1.677,7.493];
Point(15,:)=[2.895,-1.679,7.498];
Point(16,:)=[2.888,-1.682,7.504];
Point(17,:)=[2.882,-1.685,7.510];
Point(18,:)=[2.876,-1.689,7.517];
Point(19,:)=[2.871,-1.692,7.524];
Point(20,:)=[2.867,-1.696,7.532];
Point(21,:)=[2.863,-1.700,7.540];
Point(22,:)=[2.860,-1.704,7.548];
Point(23,:)=[2.858,-1.708,7.556];
Point(24,:)=[2.856,-1.713,7.565];
Point(25,:)=[2.855,-1.717,7.573];
Point(26,:)=[2.856,-1.722,7.586];
Point(27,:)=[2.888,-1.882,8.179];
Point(28,:)=[2.920,-2.042,8.777];
Point(29,:)=[2.953,-2.202,9.374];
Point(30,:)=[2.985,-2.362,9.977];
Point(31,:)=[2.985,-2.370,10.013];
Point(32,:)=[2.981,-2.378,10.055];
Point(33,:)=[2.971,-2.387,10.095];
Point(34,:)=[2.958,-2.395,10.134];
Point(35,:)=[2.940,-2.402,10.172];
Point(36,:)=[2.918,-2.410,10.207];
Point(37,:)=[2.892,-2.416,10.240];
Point(38,:)=[2.863,-2.423,10.270];
Point(39,:)=[2.830,-2.428,10.297];
Point(40,:)=[2.795,-2.433,10.320];
Point(41,:)=[2.758,-2.437,10.339];
Point(42,:)=[2.718,-2.440,10.354];
Point(43,:)=[2.677,-2.442,10.365];
Point(44,:)=[2.636,-2.444,10.371];
Point(45,:)=[2.609,-2.444,10.373];
Point(46,:)=[2.583,-2.444,10.371];
Point(47,:)=[2.541,-2.442,10.364];
Point(48,:)=[2.500,-2.440,10.353];
Point(49,:)=[2.461,-2.437,10.337];
Point(50,:)=[2.424,-2.433,10.318];
Point(51,:)=[2.389,-2.428,10.294];
Point(52,:)=[2.357,-2.423,10.268];
Point(53,:)=[2.331,-2.417,10.241];
Point(54,:)=[1.099,-2.037,8.823];
Point(55,:)=[-0.129,-1.658,7.408];
Point(56,:)=[-0.1760,-1.651,7.354];
Point(57,:)=[-0.175,-1.641,7.283];
Point(58,:)=[-0.166,-1.516,6.817];
Point(59,:)=[-0.158,-1.391,6.351];
Point(60,:)=[-0.149,-1.266,5.885];
Point(61,:)=[-0.141,-1.141,5.418];
Point(62,:)=[-0.134,-1.041,5.046];
Point(63,:)=[-0.127,-0.941,4.673];
Point(64,:)=[-0.121,-0.841,4.300];
Point(65,:)=[-0.114,-0.741,3.927];
Point(66,:)=[-0.107,-0.641,3.554];
Point(67,:)=[-0.123,-0.641,3.554];
Point(68,:)=[-1.123,-0.641,3.554];
%在3D平面上绘制出来;
sum1=0;sum2=0;
for i=1:67
sum1=sqrt(Point(i,2)^2+Point(i,3)^2);
sum2=sqrt(Point(i+1,2)^2+Point(i+1,3)^2);
% plot3([Point(i,1),Point(i+1,1)],[Point(i,2),Point(i+1,2)],[Point(i,3),Point(i+1,3)],'r');
plot3([Point(i,1),Point(i+1,1)],[0,0],[sum1,sum2],'r');
hold on;
end
for i=1:67
% sum1=sqrt(Point(i,2)^2+Point(i,3)^2);
%sum2=sqrt(Point(i+1,2)^2+Point(i+1,3)^2);
plot3([Point(i,1),Point(i+1,1)],[Point(i,2),Point(i+1,2)],[Point(i,3),Point(i+1,3)],'r');
%plot([Point(i,1),Point(i+1,1)],[sum1,sum2],'r');
hold on;
end
for i=1:68
%plot3(Point(i,1),Point(i,2),Point(i,3),'+');
sum1=sqrt(Point(i,2)^2+Point(i,3)^2);
%sum2=sqrt(Point(i+1,2)^2+Point(i+1,3)^2);
% plot3([Point(i,1),Point(i+1,1)],[Point(i,2),Point(i+1,2)],[Point(i,3),Point(i+1,3)],'r');
plot3(Point(i,1),0,sum1,'g+');
hold on;
end
for i=1:68
%plot3(Point(i,1),Point(i,2),Point(i,3),'+');
%sum1=sqrt(Point(i,2)^2+Point(i,3)^2);
%sum2=sqrt(Point(i+1,2)^2+Point(i+1,3)^2);
plot3(Point(i,1),Point(i,2),Point(i,3),'+');
%plot(Point(i,1),sum1,'+');
hold on;
end
sum1=0;sum2=10*Point(1,1);
%for i=1:67
% sum1=sum1+10*Point(i,1);
%sum2=sum2+10*Point(i+1,1);
%plot3([sum1,sum2],[10*Point(i,2),10*Point(i+1,2)],[10*Point(i,3),10*Point(i+1,3)],'b');
%hold on;
%end
%进行节点计算;
%首先计算弦长;
sum_length=0;
for i=1:67
length(i,:)=sqrt((Point(i+1,1)-Point(i,1))^2+(Point(i+1,2)-Point(i,2))^2+(Point(i+1,3)-Point(i,3))^2);
sum_length=sum_length+length(i,:);
end
temp_u=0;
for i=1:67
u(i+4,:)=length(i,:)/sum_length+temp_u;
temp_u=u(i+4,:);
end
u(72,:)=1;u(73,:)=1;u(74,:)=1;
for i=1:68
u2(i)=u(i+3);
end
u1(1,:)=0;u1(2,:)=0;u1(3,:)=0;u1(4,:)=0;
for i=1:64
u1(i+4,:)=(u(i+4,:)+u(i+5,:)+u(i+6,:))/3;
end
u1(69,:)=1;u1(70,:)=1;u1(71,:)=1;u1(72,:)=1;
%spap2需要采用spap2(knots,K,X,Y);
%即对于其中的X(j) 都有对应的Y(:,j)与之对应;
%进行B样条函数绘制;
for i=1:66
u3(i)=u1(i+3,:);
end
for i=1:68
Y(:,i)=Point(i,:);
end
%这里就不知道该如何去设定了;
sp1=spap2(u3,3,u2,Y);
u12=[0,1];
sp=fnplt(sp1,u12);
fnplt(sp1,u12);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)