Bonjour
bonjour tout le monde, je suis entrain de preparer un programme
(fonction sous Matlab) qui s'intitule "L'action des transformations affines dans le plans", le probleme c'est que j'ai du mal avec matlab.
j'ai deja commencer le travail , mais bon j'ai pas fais grand chose :
J ai fait la fonction suivant qui donne l'image d'un carre par une suite
d'homothétie de rapport lambda
Voila le programme:
---------------------Fonction 1 ::ActionCarre::------------------------
%dessine un carre A,B,C,D
function[]=ActionCarre(A,B,C,D)
%%%%%%%%%%%%%%%%%%%%
% ActionCarre %
% Plot the square ABCD In 2D %
% %
% %
%%%%%%%%%%%%%%%%%%%%
%% Le milieu de ABCD:
I=1/2*[A(1)+C(1);A(2)+C(2)];
plot(I(1),I(2),'x')
hold on
%% Dessin des diagonales AC et BD:
plot([A(1) C(1)],[A(2) C(2)],'--k')
plot([B(1) D(1)],[B(2) D(2)],'--k')
%% Dessin de la Ligne ABCD:
M1=[A(1) B(1) C(1) D(1) A(1)];
M2=[A(2) B(2) C(2) D(2) A(2)];
plot(M1,M2,'--o','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','r',...
'MarkerSize',5),grid on
axis([-6 6 -6 6])
%Fixe_Carre(A,B,C,D)
%dessineRepere
hold off
end
-----------------------Fonction 2--------------------
function []=Suite_Carre(A,B,C,D,O,LambdaM ax)
for lambda=1:0.009:LambdaMax
A=[lambda*A(1)+(1-lambda)*O(1);lambda*A(2)+(1-lambda)*O(2)];
B=[lambda*B(1)+(1-lambda)*O(1);lambda*B(2)+(1-lambda)*O(2)];
C=[lambda*C(1)+(1-lambda)*O(1);lambda*C(2)+(1-lambda)*O(2)];
D=[lambda*D(1)+(1-lambda)*O(1);lambda*D(2)+(1-lambda)*O(2)];
ActionCarre(A,B,C,D)
axis([-450 7 -348 5])
hold on
end
plot([O(1) A(1)],[O(2) A(2)],'--g','LineWidth',2)
plot([O(1) B(1)],[O(2) B(2)],'--g','LineWidth',2)
plot([O(1) C(1)],[O(2) C(2)],'--g','LineWidth',2)
plot([O(1) D(1)],[O(2) D(2)],'--g','LineWidth',2)
end
-----------------------------------------------------------
Pour faire une animation il y a deux fonctions getframe et movie
Mais mon prbeleme ici c'est comment utilise ses fonctions Pour Mon Programme d'animer le mouvement de dilatation d'un carre.
et Merci Pour votre aide.
-----