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.
249 lines
8.4 KiB
249 lines
8.4 KiB
%% Skript zum Plot Basisfunktionen |
|
|
|
%Skript für Plotbasics |
|
basics_plot |
|
figure |
|
clf |
|
% hold on |
|
% box on |
|
% grid on |
|
|
|
U_Knot = [0,0,0,1,2,2,3,4,5,5,5]; |
|
p = 2; |
|
|
|
uidx = [min(U_Knot):0.01:max(U_Knot)]; |
|
|
|
Ni2 = zeros(numel(uidx),numel(U_Knot)-1-2); |
|
Ni1 = zeros(numel(uidx),numel(U_Knot)-1-2); |
|
Ni0 = zeros(numel(uidx),numel(U_Knot)-1-2); |
|
|
|
for i = 1:numel(uidx) |
|
s = findspan(length(U_Knot)-p-2, p, uidx(i), U_Knot); |
|
if s>4 |
|
stop = 1; |
|
end |
|
ndu = Allbasisfun(s,uidx(i),p,U_Knot); |
|
Ni2(i,s-(p+1)+1:s) = ndu(:,end)'; |
|
Ni1(i,s-(p+1)+1:s-1) = ndu(1:2,end-1)'; |
|
Ni0(i,s-(p+1)+1:s-2) = ndu(1,end-2)'; |
|
end |
|
|
|
Ni2(Ni2==0)=nan; |
|
Ni1(Ni1==0)=nan; |
|
Ni0(Ni0==0)=nan; |
|
|
|
f2 = figure; |
|
hold on |
|
box on |
|
grid on |
|
for i = 1:size(Ni2,2) |
|
boolSwitch = false; |
|
switch i |
|
case 1 |
|
line=myLineOne; |
|
if max(Ni2(:,i))>0 |
|
text(uidx(25)-0.15,Ni2(25,i)+0.2,strcat('$\N{',num2str(i-1),'}{',num2str(p-0),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 2 |
|
line=myLineTwo; |
|
if max(Ni2(:,i))>0 |
|
text(uidx(75)-0.25,Ni2(75,i)+0.08,strcat('$\N{',num2str(i-1),'}{',num2str(p-0),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 3 |
|
line=myLineThree; |
|
if max(Ni2(:,i))>0 |
|
text(uidx(125)-0.2,Ni2(125,i)+0.08,strcat('$\N{',num2str(i-1),'}{',num2str(p-0),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 4 |
|
line=myLineFour; |
|
if max(Ni2(:,i))>0 |
|
text(uidx(175)-0.15,Ni2(225,i)+0.25,strcat('$\N{',num2str(i-1),'}{',num2str(p-0),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 5 |
|
line=myLineFive; |
|
if max(Ni2(:,i))>0 |
|
text(uidx(225)+0.11,Ni2(225,i)+0.35,strcat('$\N{',num2str(i-1),'}{',num2str(p-0),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 6 |
|
line=myLineSix; |
|
if max(Ni2(:,i))>0 |
|
text(uidx(350)-0.25,Ni2(350,i)+0.07,strcat('$\N{',num2str(i-1),'}{',num2str(p-0),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 7 |
|
line=myLineSeven; |
|
if max(Ni2(:,i))>0 |
|
text(uidx(410)-0.1,Ni2(410,i)+0.15,strcat('$\N{',num2str(i-1),'}{',num2str(p-0),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 8 |
|
line=myLineOne; |
|
if max(Ni2(:,i))>0 |
|
text(uidx(470)-0.14,Ni2(470,i)+0.3,strcat('$\N{',num2str(i-1),'}{',num2str(p-0),'}$')); |
|
boolSwitch = true; |
|
end |
|
end |
|
|
|
%Punkte generieren: |
|
if boolSwitch |
|
plot(uidx,Ni2(:,i),'LineStyle','-','Color',line) |
|
axeshandle = findall(f2, 'type', 'axes'); |
|
set(axeshandle,'YLim',[0,1.1]); |
|
end |
|
end |
|
f1 = figure; |
|
hold on |
|
box on |
|
grid on |
|
for i = 1:size(Ni1,2) |
|
boolSwitch = false; |
|
switch i |
|
case 1 |
|
line=myLineOne; |
|
if max(Ni1(:,i))>0 |
|
text(uidx(25)-0.02,Ni1(25,i)+0.05,strcat('$\N{',num2str(i-1),'}{',num2str(p-1),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 2 |
|
line=myLineTwo; |
|
if max(Ni1(:,i))>0 |
|
text(uidx(75),Ni1(75,i),strcat('$\N{',num2str(i-1),'}{',num2str(p-1),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 3 |
|
line=myLineThree; |
|
if max(Ni1(:,i))>0 |
|
text(uidx(175)-0.23,Ni1(175,i)+0.08,strcat('$\N{',num2str(i-1),'}{',num2str(p-1),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 4 |
|
line=myLineFour; |
|
if max(Ni1(:,i))>0 |
|
text(uidx(225),Ni1(225,i)+0.05,strcat('$\N{',num2str(i-1),'}{',num2str(p-1),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 5 |
|
line=myLineFive; |
|
if max(Ni1(:,i))>0 |
|
text(uidx(275),Ni1(275,i),strcat('$\N{',num2str(i-1),'}{',num2str(p-1),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 6 |
|
line=myLineSix; |
|
if max(Ni1(:,i))>0 |
|
text(uidx(375)-0.25,Ni1(375,i)+0.07,strcat('$\N{',num2str(i-1),'}{',num2str(p-1),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 7 |
|
line=myLineSeven; |
|
if max(Ni1(:,i))>0 |
|
text(uidx(475)-0.25,Ni1(475,i)+0.07,strcat('$\N{',num2str(i-1),'}{',num2str(p-1),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 8 |
|
line=myLineOne; |
|
if max(Ni1(:,i))>0 |
|
text(uidx(470)-0.14,Ni1(470,i)+0.3,strcat('$\N{',num2str(i-1),'}{',num2str(p-1),'}$')); |
|
boolSwitch = true; |
|
end |
|
end |
|
|
|
%Punkte generieren: |
|
if boolSwitch |
|
plot(uidx,Ni1(:,i),'LineStyle','-','Color',line) |
|
axeshandle = findall(f1, 'type', 'axes'); |
|
set(axeshandle,'YLim',[0,1.1]); |
|
end |
|
end |
|
|
|
f0 = figure; |
|
hold on |
|
box on |
|
grid on |
|
for i = 1:size(Ni0,2) |
|
boolSwitch = false; |
|
switch i |
|
case 1 |
|
line=myLineOne; |
|
if max(Ni0(:,i))>0 |
|
text(uidx(20),0.9,strcat('$\N{',num2str(i-1),'}{',num2str(p-2),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 2 |
|
line=myLineTwo; |
|
if max(Ni0(:,i))>0 |
|
text(uidx(120),0.9,strcat('$\N{',num2str(i-1),'}{',num2str(p-2),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 3 |
|
line=myLineThree; |
|
if max(Ni0(:,i))>0 |
|
text(0,0.9,strcat('$\N{',num2str(i-1),'}{',num2str(p-2),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 4 |
|
line=myLineFour; |
|
if max(Ni0(:,i))>0 |
|
text(uidx(220),0.9,strcat('$\N{',num2str(i-1),'}{',num2str(p-2),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 5 |
|
line=myLineFive; |
|
if max(Ni0(:,i))>0 |
|
text(uidx(320),0.9,strcat('$\N{',num2str(i-1),'}{',num2str(p-2),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 6 |
|
line=myLineSix; |
|
if max(Ni0(:,i))>0 |
|
text(uidx(420),0.9,strcat('$\N{',num2str(i-1),'}{',num2str(p-2),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 7 |
|
line=myLineSeven; |
|
if max(Ni0(:,i))>0 |
|
text(0,0.9,strcat('$\N{',num2str(i-1),'}{',num2str(p-2),'}$')); |
|
boolSwitch = true; |
|
end |
|
case 8 |
|
line=myLineOne; |
|
if max(Ni0(:,i))>0 |
|
text(0,0.9,strcat('$\N{',num2str(i-1),'}{',num2str(p-2),'}$')); |
|
boolSwitch = true; |
|
end |
|
end |
|
|
|
%Punkte generieren: |
|
if boolSwitch |
|
plot(uidx,Ni0(:,i),'LineStyle','-','Color',line) |
|
axeshandle = findall(f0, 'type', 'axes'); |
|
set(axeshandle,'YLim',[0,1.1]); |
|
end |
|
end |
|
matlab2tikz('filename','plot_Basisfunktionen2.tex',... |
|
'height', '\figureheight', 'width', '\figurewidth', 'encoding', 'UTF8', 'showInfo', false, 'checkForUpdates', false, ... |
|
'figurehandle',f2,... |
|
'parseStrings', false, ... % switch off LaTeX parsing by matlab2tikz for titles, axes labels etc. ("greater flexibility", "use straight LaTeX for your labels") |
|
'floatFormat', '%.4g', ... % limit precision to get smaller .tikz files |
|
'noSize', false); |
|
matlab2tikz('filename','plot_Basisfunktionen1.tex',... |
|
'height', '\figureheight', 'width', '\figurewidth', 'encoding', 'UTF8', 'showInfo', false, 'checkForUpdates', false, ... |
|
'figurehandle',f1,... |
|
'parseStrings', false, ... % switch off LaTeX parsing by matlab2tikz for titles, axes labels etc. ("greater flexibility", "use straight LaTeX for your labels") |
|
'floatFormat', '%.4g', ... % limit precision to get smaller .tikz files |
|
'noSize', false); |
|
|
|
|
|
matlab2tikz('filename','plot_Basisfunktionen0.tex',... |
|
'height', '\figureheight', 'width', '\figurewidth', 'encoding', 'UTF8', 'showInfo', false, 'checkForUpdates', false, ... |
|
'figurehandle',f0,... |
|
'parseStrings', false, ... % switch off LaTeX parsing by matlab2tikz for titles, axes labels etc. ("greater flexibility", "use straight LaTeX for your labels") |
|
'floatFormat', '%.4g', ... % limit precision to get smaller .tikz files |
|
'noSize', false); |
|
|
|
|
|
|