TP 5 - Algorithmes de tri (Correction)

Nous allons manipuler dans ce TP des points dans l’espace (en trois dimensions donc) et des vecteurs (au sens mathématique). Nous allons pour ce faire utiliser des vecteurs (au sens Octave ici) pour représenter ces structures dans un repère orthonormé ($O, i, j, k$) tridimensionnel. Un point et un vecteur seront donc représentés par un tableau (vecteur octave, colonne ou ligne à votre choix) durant ce TP.

<aside> ❗ Nota :

Exercice 1 - Fonctions et repère orthonormé

  1. Ecrire une fonction Pt = Demande_Point() qui créé un point 3D à partir des entrées de l’utilisateur (vous utiliserez exceptionnellement l’instruction input dans une fonction)
function P = Demande_Point()
  P(1) = input('Entrez la coordonnee en x : ')
  P(2) = input('Entrez la coordonnee en y : ')
  P(3) = input('Entrez la coordonnee en z : ')
end
  1. Ecrire une fonction Pt = Creer_Point(x,y,z) qui créé un point 3D à partir des coordonnées $x,y,z$ données en paramètre
function P = Creer_Point(x,y,z)
  P = [x;y;z];
end
  1. Ecrire une fonction Affiche_Point(Pt) qui permet d’afficher un point (sous forme d’un « + ») dans l’espace (utiliser la fonction plot3 pour afficher un point en 3D)
function Affiche_Point(P)
  plot3(P(1),P(2),P(3),"+r");
end
  1. Ecrire une fonction V=Vectorise(Pt1,Pt2) qui définit le vecteur $\overrightarrow{AB}$ à partir des points $A$ et $B$
function V = Vectorise(P1,P2)
  V = P2-P1;
end
  1. Ecrire une fonction PV=Produit_Vectoriel(V1,V2) qui renvoie le vecteur résultat du produit vectoriel de 2 vecteurs.
function PV=Produit_Vectoriel(V1,V2)
  PV(1) = V1(2)*V2(3) - V1(3)*V2(2);
  PV(2) = V1(3)*V2(1) - V1(1)*V2(3);
  PV(3) = V1(1)*V2(2) - V1(2)*V2(1);
end
  1. Ecrire une fonction PS=Produit_Scalaire(V1,V2) qui renvoie le produit scalaire de 2 vecteurs.
function PS = Produit_Scalaire(V1,V2)
  PS = V1(1)*V2(1) + V1(1)*V2(1) + V1(3)*V1(3);
end
  1. Ecrire une fonction N=Norme(V) qui calcule la norme (distance) d’un vecteur.
function N=Norme(V)
  N = sqrt(V(1)^2 + V(2)^2 + V(3)^2);
end
  1. Ecrire une fonction Affiche_Triangle(Pt1,Pt2,Pt3) qui affiche un triangle dans un espace 3D à partir de 3 points donnés en paramètre.
function Affiche_Triangle(A,B,C)
	% On trace trois lignes (entre A et B, B et C et C et A)
  X = [A(1) B(1) C(1) A(1)];
  Y = [A(2) B(2) C(2) A(2)];
  Z = [A(3) B(3) C(3) A(3)];
  plot3(X,Y,Z, "k");
end