Vous êtes sur la page 1sur 4

http://www.ups-tlse.

fr

L3 Mécanique Ingénierie

Outils Informatiques
Octave
Travaux Dirigés
TD n°5
Août 2009

Vecteurs dans l’espace

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 Produit_Scalaire.m qui renvoie le produit scalaire de 2 vecteurs.

- Ecrire une fonction Norme.m qui calcule la norme d’un vecteur.

- 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

- Ecrire enfin une fonction Affiche_Plan.m qui affiche le plan en 3D

3) Ecrire un programme qui permet :


- à l’utilisateur de rentrer les coordonnées dans l’espace de 3 points.
- de déterminer les coordonnées du centre de gravité du triangle dont les sommets correspondent aux 3
points définis par l’utilisateur
- de calculer le périmètre et l’aire du triangle.
- de calculer l’équation du plan passant par les 3 points et d’afficher ce plan

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

% carré e 10 de côté avec un pas de 0.5


[x y] = meshgrid(-10:0.5:10);

% equation ax + by + cz + d = 0 d'où z = -(a/c)x -(b/c)y - (d/c) si c =/= 0


z = -(eq(1)/eq(3))*x -(eq(2)/eq(3))*y -(eq(4)/eq(3));
mesh(z);
end

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);

disp("Vecteur AB="), disp(vAB);


disp("Vecteur AC="), disp(vAC);

# calcul du vecteur 3AG (3vAG = vAB + vAC)


v3AG = vAB + vAC;
vAG = v3AG / 3;
vOG = vOA + vAG;
disp("Point Centree de Gravite G ="), disp(vOG);

# Calcul de l'aire du triangle S = 1/2 norme(produit_vectoriel(AB,AC))


S = 0.5 * Norme(Produit_Vectoriel(vAB, vAC));
disp("Surface du Triangle ABC="), disp(S);
Page 4 Travaux Dirigés Outils informatiques

% Calcul de l'équation du plan


eq = Equation_Plan(A, B, C);
disp("Equation du plan : ") , disp(eq(1)), disp("x +"), disp(eq(2)), disp("y +"),
disp(eq(3)), disp("z +"), disp(eq(4)), disp("=0");

% Affichage de plan
Affiche_Plan(eq);
return

Appel à l’exercice (se déplacer dans le répertoire du td puis lancer)

> cd c:/octave
> td5 <entree>