1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
clear all
close all
%% on demande à l'utilisateur le nbre de points de controle
n=input('Donnez le nombre de points de controle que vous désirez \n');
%% on réalise une boucle car il y a n points de controle
for a=1:n;
Qx(a,1)=input(['Donnez l''abscisse du point de controle ' num2str(a) '\n']);
Qy(a,1)=input(['Donnez l''ordonnée du point de controle ' num2str(a) '\n']);
end
%% on affiche les points de controle ds une matrice
fprintf('P est la liste des points de controle\n');
fprintf('colonne 1 gauche l''abscisse, colonne de droite l''ordonnée\n');
for a=1:n
Q1(1,a)=Qx(a,1);
Q2(1,a)=Qy(a,1);
end
P=[Q1(1,1:n) ; Q2(1,1:n)]
%% on fait une boucle pour calculer les milieux
for d=2:n
for c=1:n+1-d
Qx(c,d)= 0.5 * Qx(c,d-1)+ 0.5 * Qx(c+1,d-1);
Qy(c,d)= 0.5 * Qy(c,d-1)+ 0.5 * Qy(c+1,d-1);
end
end
L{1,1}=[Qx(1,1:n) ; Qy(1,1:n)];
disp('L{1,1}=')
disp(L{1,1})
for m=1:n
for g=1:n
Ls(1,g)=Qx(g,n+1-g);
Ls(2,g)=Qy(g,n+1-g);
end
end
disp('L{1,2}=')
L{1,2}=[Ls(1,1:m) ; Ls(2,1:m)];
disp(L{1,2})
for z=2:n
for w=1:2^z
%liste (z-1,w,P)
L{z,w}=P;
for d=2:n
for c=1:n+1-d
Qx(c,d)= 0.5 * Qx(c,d-1)+ 0.5 * Qx(c+1,d-1);
Qy(c,d)= 0.5 * Qy(c,d-1)+ 0.5 * Qy(c+1,d-1);
end
end
L{z,2*w-1}=[Qx(1,1:n) ; Qy(1,1:n)];
disp('L{z,2*w-1}')
disp(L{z,2*w-1})
for m=1:n
for g=1:n
Ls(1,g)=Qx(g,n+1-g);
Ls(2,g)=Qy(g,n+1-g);
end
end
L{z,2*w}=[Ls(1,1:m) ; Ls(2,1:m)];
disp(['L{',num2str(z),',',num2str(2*w),'}'])
disp(L{z,2*w})
S{1}=L{z,2*w-1};
S{2}=L{z,2*w-1};
end
end |
Partager