Upload
kevin-bourgeois
View
183
Download
4
Embed Size (px)
Citation preview
http://www.ups-tlse.fr
L3 Mécanique Ingénierie
Outils InformatiquesOctave
Travaux DirigésTD 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 à 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
RappelsCaractéristiques du centre de gravité d’un triangle : et
Surface du triangle ABC :
Exemple
A (1,1,0)B (5,1,0)
Page 2 Travaux Dirigés Outils informatiques
C (3,4,0)
Travaux Dirigés Outils informatiques Page 3
Solution
Création des fichiers .m (définir les fonctions) dans le répertoire td5Creer_Point.m
function pt = Creer_Point(x,y,z)%CREER_POINT(x,y,z) Créé un point à partir des coordonnéespt = [x,y,z];end
Affiche_Point.m
function Affiche_Point(v)%AFFICHEPOINT(v) Affiche un point 3D donné en argumentplot3(v,"+");
end
Vectorise.m
function v = Vectorise(pt1,pt2)%VECTORISE(pt1,pt2) Créé un vecteur AB à partir de deux pointsv = 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 vuv = [(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 vus = 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 vn =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 ABAB = Vectorise(A,B);AC = Vectorise(A,C);% calcul du vecteur normaln = 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 = 0a = n(1);
Page 4 Travaux Dirigés Outils informatiques
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 pointAx = 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 pointBx = 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 pointCx = 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 ABvAB = Vectorise(A,B);
# Créer vecteur ACvAC = Vectorise(A,C);
# Créer vecteur OAO = 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);
Travaux Dirigés Outils informatiques Page 5
% 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 planAffiche_Plan(eq);return
Appel à l’exercice (se déplacer dans le répertoire du td puis lancer)
> cd c:/octave> td5 <entree>