100% Guaranteed Results


Matlab – Laboratoire de programmation Solved
$ 24.99
Category:

Description

5/5 – (1 vote)

Travaux pratiques 2 : La perspective

Depuis les temps les plus recul´es, l’homme a essay´e de repr´esenter son environnement, en particulier par la peinture. Il lui fallait donc repr´esenter l’espace sur un plan. La technique permettant d’effectuer cela de mani`ere r´ealiste s’appelle la perspective.

Dans le tableau de Durer ci-dessus, on voit comment deux personnes essaient de repr´esenter¨ une mandoline sur un plan. Ils d´eterminent physiquement, `a l’aide d’un fil fix´e en un point du mur d’un cˆot´e et touchant un point de la mandoline de l’autre, le point d’intersection du plan avec le fil. Le point fixe repr´esente l’oeil de l’observateur et le fil repr´esente le rayon de lumi`ere allant de l’objet `a l’oeil. Le but de ce TP est de construire un mod`ele math´ematique de cette exp´erience.
Math´ematiquement, la perspective est une projection centrale de centre A sur un plan de projection π. Le point A repr´esente l’oeil de l’observateur, le plan π le dessin. Un point P de l’espace doit apparaˆıtre sur le dessin en P0, sa projection sur π de centre A (voir la Figure 1).
Les donn´ees sont les suivantes : les coordonn´ees du point A, et le plan π, d´etermin´e par trois points P1, P2 et P3.
Exercice 1 Base orthonorm´ee adapt´ee `a un plan.
1. Etant donn´es trois points non align´es P1, P2, P3 ∈ R3, ´ecrivez une fonction BaseR3 retournant une base orthonorm´ee telle que soient parall`ele au plan π engendr´e par P1, P2 et P3, et que →−n soit un vecteur de norme 1 normal `a π.
Utilisez l’entˆete suivant :
function [u1,u2,n] = BaseR3(P1,P2,P3) … end
Sauvez la fonction dans un fichier BaseR3.m dans le r´epertoire courant. Vous pourrez utiliser cette fonction dans tout script comme si vous l’aviez d´efinie dans le script.

Figure 1 – Projection centrale de centre A de P sur le plan π. La projection de P est P0. B est la projection perpendiculaire de A sur π. u1 et u2 forment une base orthonorm´ee des vecteurs parall`eles `a π.
Indication : Matlab a une fonction appel´ee cross retournant le produit vectoriel de deux vecteur tridimensionnels. Tapez help cross pour plus d’informations.
2. Dans un script, d´efinissez P1 = (3, 4, −1)T, P2 = (5, 3, −1)T et P3 = (5, 5, 1)T. Evaluez votre fonction sur (´ P1,P2,P3) et v´erifiez que les vecteurs retourn´es sont orthogonaux et de norme 1.
Exercice 2 Projection perpendiculaire sur un plan.
1. Ecrivez une fonction´ ProjPointPlan qui retourne le point B, ´etant donn´es trois points P1, P2, P3 de π et un point A hors de π. Sauvez la fonction dans un fichier ProjPointPlan.m dans le r´epertoire courant.
Indication : Pour ´ecrire la fonction ProjPointPlan, il sera utile d’utiliser la fonction BaseR3 de l’exercice pr´ec´edent.
2. Dans le script de l’exercice, d´efinissez A = (2, 0, 1)T ainsi que les points (P1,P2,P3)
−−→
de l’exercice pr´ec´edent et v´erifiez que le vecteur AB est perpendiculaire au plan π.
Exercice 3 Visualisation. Nous allons visualiser les constructions d´ej`a effectu´ees au moyen d’un script utilisant la fonction ProjPointPlan et la fonction d’affichage 3D de Matlab.
Pour A, P1, P2, P3 comme d´efinis pr´ec´edemment, ´ecrivez un script qui affiche sur un mˆeme graphique les points A et B, ainsi que le plan π, en suivant les indications ci-dessous.
1. On commence avec le pr´eambule
% On veut dessiner en 3d
view(3);
% Pour afficher plusieurs ´el´ements sur le m^eme plot. hold on
% Met tous les axes `a la m^eme ´echelle.
axis equal
2. Pour dessiner les points A et B, on utilise la fonction plot3. Ses trois premiers arguments sont les coordonn´ees du point que l’on veut dessiner. Pour dessiner un point, on ajoute l’argument suppl´ementaire ’.’ (en incluant les apostrophes). Dans notre cas, on veut dessiner A en rouge, et B en bleu : on utilise donc les arguments ’.r’ et ’.b’. Tapez help plot3, ouvrez la page d’aide de plot3 et suivez le lien vers LineSpec pour plus d’information sur ces commandes.
3. Pour afficher les labels ”A” et ”B” des points sur le graphique 3d, utilisez la fonction text (cf. help text). Pour afficher ces labels dans la couleurs de leurs points respectifs, ajoutez les deux arguments ’Color’, ’r’ ou ’Color’, ’b’ `a la fonction text.
−−→
4. On veut aussi afficher le vecteur AB, afin de v´erifier visuellement qu’il est perpendiculaire `a π. Utilisez pour ceci la fonction quiver3 (cf. help quiver3). Les trois premiers arguments sont les coordonn´ees du point de d´epart du vecteur, et les trois derniers sont les coordonn´ees du vecteur lui-mˆeme (d´eterminant sa direction). On veut l’afficher en noir, donc on ajoute l’argument ’k’ `a la fonction quiver3.
5. Finalement, affichez le plan π `a l’aide de la fonction AffichagePlan(B,u1,u2,3), que vous pouvez t´el´echarger sur Moodle.
−−→
V´erifiez visuellement que le vecteur AB est perpendiculaire `a π. Pour ceci, cliquez sur le bouton montrant un cube entour´e d’une fl`eche dans la fenˆetre du graphique. En cliquant et faisant glisser sur le graphique, vous pouvez le faire tourner dans les trois dimensions.
Exercice 4 Courbe tridimensionelle. (Pas besoin de cr´eer un nouveau fichier .m pour cet exercice, continuez avec le fichier de l’Exercice 3.) Ajoutez la courbe param´etrique suivante `a votre graphique :
C : [0, 1] −→ R3,
.
Coloriez-la en vert en ajoutant l’argument suppl´ementaire ’g’ `a la fonction plot3 utilis´ee pour dessiner la courbe. Nommez-la sur votre graphique en utilisant la fonction text.
Soit P un point de l’espace tel que −AP→ ne soit pas parall`ele au plan π. Notons P0 le point
−→
d’intersection de AP avec π. L’Exercice 1 nous fournit un rep`ere orthonorm´esur le plan π, que l’on imagine centr´e au point B. On cherche `a d´eterminer dans ce rep`ere les coordonn´ees ( .
On remarque que les vecteurs−−→ −AP→ et −−AP→0 sont colin´eaires, c’est-`a-dire il existe un λ ∈ R tel que −AP→ = λAP0. Ce λ peut ˆetre d´etermin´e par le fait que
0 = h−−AB→ −−→0|−−AB→i
− AP
Exercice 5 Projection sur le plan.
1. Trouvez la formule pour calculer λ, ainsi que celles pour calculer les coordonn´ees

2. Ecrivez une fonction qui ´etant donn´e A, P1, P2, P3 et P, calcule les coordonn´ees par rapport `a la base de la projection centrale de P de centre A sur le plan π.
Comme on va le voir, il est plus pratique de passer P `a la fonction par ses coordonn´ees (x,y,z). Il est ´egalement utile de pouvoir utiliser un ensemble de points P pour les projeter tous a la fois. Il est donc utile de pouvoir entrer les coordonn´ees x, y et z en tant que listes. Utilisez donc l’entˆete suivant :
function [xp,yp]=Perspective(A,B,u1,u2,x,y,z) … end
3. Avec les donn´ees fournies pr´ec´edemment, utilisez la fonction Perspective pour calculer la projection centrale de la courbe C et afficher le r´esultat obtenu dans un graphique en 2D.
Comme on va afficher deux graphique, utilisez les commandes suivantes avant d’utiliser la commande plot :
% Pour dessiner sur le graphique de gauche subplot(1,2,1)
% Pour garder les axes `a la m^eme ´echelle axis equal
Affichez votre courbe en magenta (argument suppl´ementaire ’m’).
4. Recopiez les commandes d’affichage de l’exercice 3 en les faisant pr´ec´eder de la commande suivante :
% Pour dessiner sur le graphique de droite subplot(1,2,2)
% Il semble n´ecessaire de r´ep´eter la commande hold on hold on
En plus, affichez la projection centrale de la courbe C sur votre graphique en 3D (en magenta ´egalement, avec l’argument suppl´ementaire ’m’).
Le r´esultat devrait ressembler `a ceci :

Reviews

There are no reviews yet.

Be the first to review “Matlab – Laboratoire de programmation Solved”

Your email address will not be published. Required fields are marked *

Related products