fr
L3 Mécanique Ingénierie
Outils Informatiques
Octave
Travaux Dirigés
TD n°5
Août 2009
1) structures utilisées
Nous allons manipuler des points dans l’espace et des vecteurs. Nous allons pour ce faire utiliser des matrices
(au sens Octave) pour représenter ces structures dans un repère orthonormé (O,i,j,k) tridimensionnel
2) Définitions de fonctions
- Ecrire une fonction Creer_Point.m qui créé un point 3D à partir des coordonnées (x,y,z).
- Ecrire une fonction Affiche_Point.m qui permet d’afficher un point (sous forme d’un « + ») dans
l’espace
- Ecrire une fonction Vectorise.m qui définit le vecteur AB à partir des coordonnées des points A et
B.
- Ecrire une fonction Produit_Vectoriel.m qui renvoie le vecteur résultat du produit vectoriel de 2
vecteurs.
- Ecrire une fonction Equation_Plan.m qui, à partir de 3 points donne l’équation du plan
correspondant sous la forme de 4 coefficients représentant l’équation ax + by + cy + d = 0
Rappels
Caractéristiques du centre de gravité d’un triangle : GA + GB + GC = 0 et 3 AG = AB + AC
1
Surface du triangle ABC : S = AB ∧ AC
2
Exemple
A (1,1,0)
B (5,1,0)
C (3,4,0)
Page 2 Travaux Dirigés Outils informatiques
Solution
Création des fichiers .m (définir les fonctions) dans le répertoire td5
Creer_Point.m
function pt = Creer_Point(x,y,z)
%CREER_POINT(x,y,z) Créé un point à partir des coordonnées
pt = [x,y,z];
end
Affiche_Point.m
function Affiche_Point(v)
%AFFICHEPOINT(v) Affiche un point 3D donné en argument
plot3(v,"+");
end
Vectorise.m
function v = Vectorise(pt1,pt2)
%VECTORISE(pt1,pt2) Créé un vecteur AB à partir de deux points
v = pt2-pt1;
end
Produit_Vectoriel.m
function uv = Produit_Vectoriel(u, v)
%PRODUIT_VECTORIEL(u,v) Calcule le produit vectoriel de deux vecteurs u x v
uv = [(u(2)*v(3) - u(3)*v(2)), u(3)*v(1) - u(1)*v(3), u(1)*v(2) - u(2)*v(1)];
end
Produit_Scalaire.m
function us = Produit_Scalaire(u, v)
%PRODUIT_SCALAIRE(u,v) Calcule le produit scalaire de deux vecteurs u x v
us = u(1)*v(1) + u(2)*v(2) + u(3)*v(3);
end
Norme.m
function n = Norme(v)
%NORME(v) Calcule la norme du vecteur v
n =sqrt (v(1)*v(1) + v(2)*v(2) + v(3)*v(3));
end
Equation_Plan.m
function eq = Equation_Plan(A, B, C)
% EQUATION_PLAN(A,B,C) Calcule l'équation du plan à paratir de 3 points A B C
% Calcul du vecteur AB
AB = Vectorise(A,B);
AC = Vectorise(A,C);
% calcul du vecteur normal
n = Produit_Vectoriel(AB,AC);
% Soit M(x, y, z) appartenant au plan, on sait que AM. n = 0 (produit scalaire) d'où
% un plan est défini par l'équation ax + by + cz + d = 0
a = n(1);
Travaux Dirigés Outils informatiques Page 3
b = n(2);
c = n(3);
d = -(A(1)*n(1)) - (A(2)*n(2)) - (A(3)*n(3));
eq = [a b c d];
end
Affiche_Plan.m
function Affiche_Plan(eq)
% AFFICHE_PLAN(eq) Affiche en 3D l'équation du plan donnée en argument
td5.m
# 1er point
Ax = input ("Entrez la coordonnee x du point A -> ");
Ay = input ("Entrez la coordonnee y du point A -> ");
Az = input ("Entrez la coordonnee z du point A -> ");
A = Creer_Point(Ax,Ay,Az);
# 2ème point
Bx = input ("Entrez la coordonnee x du point B -> ");
By = input ("Entrez la coordonnee y du point B -> ");
Bz = input ("Entrez la coordonnee z du point B -> ");
B = Creer_Point(Bx,By,Bz);
# 3ème point
Cx = input ("Entrez la coordonnee x du point C -> ");
Cy = input ("Entrez la coordonnee y du point C -> ");
Cz = input ("Entrez la coordonnee z du point C -> ");
C = Creer_Point(Cx,Cy,Cz);
# Créer vecteur AB
vAB = Vectorise(A,B);
# Créer vecteur AC
vAC = Vectorise(A,C);
# Créer vecteur OA
O = Creer_Point(0,0,0);
vOA = Vectorise(O,A);
% Affichage de plan
Affiche_Plan(eq);
return
> cd c:/octave
> td5 <entree>