You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
36 lines
1.1 KiB
function toSplineFile(filename,ControlPoints,Weights,KV)
|
|
|
|
format long;
|
|
filename = [filename,'.spline'];
|
|
fileID = fopen(filename,'w+t');
|
|
|
|
NCURVES=length(ControlPoints);
|
|
NSD=length(ControlPoints);
|
|
|
|
fprintf(fileID,'%s \n','HEADER');
|
|
fprintf(fileID,'%s %s \n','NCURVES','NSD');
|
|
fprintf(fileID,'%u %u \n',NCURVES,NSD);
|
|
for i=1:NCURVES
|
|
% ControlPoints{i}=ControlPoints{i}.*Weights{i};
|
|
NCP=length(ControlPoints{i});
|
|
LKV=length(KV{i});
|
|
p=LKV-NCP-1;
|
|
fprintf(fileID,'%s %s %s \n','NCP','LKV','p');
|
|
fprintf(fileID,'%u %u %u \n',NCP,LKV,p);
|
|
fprintf(fileID,'%s \n','CONTROL POINTS');
|
|
for j=1:(length(Weights{i}))
|
|
fprintf(fileID,'%.16f %.16f %.16f \n',ControlPoints{i}(1,j),ControlPoints{i}(2,j),Weights{i}(j));
|
|
end
|
|
fprintf(fileID,'%s \n','KNOT VECTOR');
|
|
fprintf(fileID,['' repmat('%g ', 1, numel(KV{i})-1), '%g \n'],KV{i});
|
|
fprintf(fileID,'%s \n','BOUNDARY FLAGS');
|
|
for j=1:(KV{i}(end))
|
|
fprintf(fileID,'%u %u \n',j,1);
|
|
end
|
|
end
|
|
fprintf(fileID,'%s \n','BOUNDARY CONDITIONS');
|
|
fprintf(fileID,'%s \n','NBOUNDS');
|
|
fprintf(fileID,'%u \n', 1);
|
|
fprintf(fileID,'%u %u \n',1, 6);
|
|
fclose(fileID);
|
|
end
|