1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
% This file is part of the MLV Library.
%
% Copyright (C) 2012 Adrien Boussicault, Marc Zipstein
%
% This Library is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% This Library is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this Library. If not, see <http://www.gnu.org/licenses/>.
\documentclass[11pt]{article}
\usepackage{graphics}
\usepackage{a4wide}
\usepackage[latin1]{inputenc}
\begin{document}
\begin{center}
{\Large \bf TP 5\\\mbox{} \\
Utilisation de la bibliothque graphique MLV}
\end{center}
\hrule
\vspace*{1mm}
L'objet de ce TP est d'utiliser la librairie MLV pour dessiner et interagir avec
votre programme \`a l'aide de la souris et du clavier.
Des programmes de d\'emonstration sont disponibles dans le r\'epertoire \\
\verb#/usr/share/doc/mlv/examples#.
Recopier ces exemples par la commande\\
{\tt cp -r /usr/share/doc/mlv/examples .}
Les diff\'erents programmes propos\'es sont class\'es en trois cat\'egories :
beginner (d\'ebutant), medium (moyen) et advanced (avanc\'e).
Pour ce TP, vous aurez uniquement besoin di'utiliser les fonctions
propos\'ees dans la cat\'egorie beginner.
Pour compiler les programmes de la cat\'egorie beginner, placez vous dans le
r\'epertoire de compilation en tapant la commande
{\tt cd examples/beginner},
puis tapez la commande:
{\tt make}.
Pour compiler votre programme \verb#demo.c#, recopier le \verb#Makefile#
situ dans le rpertoire \verb#/usr/share/doc/mlv/examples/beginner/Makefile# dans le
le rpertoire o se trouve \verb#demo.c#.
Modifier le fichier \verb#Makefile# ainsi copi en remplaant la ligne TARGET=... par:
\begin{verbatim}
TARGET = demo
\end{verbatim}
Les commentaires de chacunes des d\'emonstrations constituent une documentation
des fonctions de la librairie MLV.
Vous devez donc lire les diff\'erents codes sources pr\'esents dans le
r\'epertoire \verb#beginner# en recherchant les fonctions utilisables.
Une documentation plus compl\'ete et d\'etaill\'ee peut \^etre trouv\'ee en tapant
dans la commande : {\tt man MLV\_all.h}.
Si vous souhaitez installer cette librairie chez vous, vous pouvez vous reporter
la documentation pr\'esente dans le dossier \verb#/usr/share/doc/mlv/index.html#
ou vous rendre sur le site \verb#@PACKAGE_URL@#.
\vspace*{1mm}
\hrule
\vspace*{5mm}
\begin{enumerate}
\item {\bf Rectangle}
\begin{itemize}
\item \'Ecrire un premier programme qui ouvre une fentre de largeur 400 pixels et de hauteur 300 pixels.
\item \'Ecrire le programme \verb+Rectangle+ dessinant un rectangle dans une
fen\^etre dont les dimensions ont \'et\'e fournies par l'utilisateur. Les
dimensions du rectangle seront exactement la moiti\'e de celle de la fen\^etre
et le rectangle devra \^etre centr\'e dans la fen\^etre.
Par exemple, on aimerait avoir~:
\begin{center}
\includegraphics{rectangle.eps}
\end{center}
\item Modifier le programme \verb+Rectangle+ afin d'afficher un rectangle rempli
de couleur bleue.
\end{itemize}
\item {\bf Ellipse}
\begin{itemize}
\item
\'Ecrire le programme \verb+Ellipse+ dessinant la plus grande ellipse inscrite
dans une fen\^etre dont les dimensions ont \'et\'e fournies par l'utilisateur.
Par exemple, on aimerait avoir~:
\begin{center}
\includegraphics{rectangle-ellipse.eps}
\end{center}
\item
\'Ecrire le programme \verb+Cercle+ dessinant le plus grand cercle inscrit
dans une fen\^etre dont les dimensions ont \'et\'e fournies par l'utilisateur.
\end{itemize}
\item {\bf Cercle}\\
\'Ecrire un programmee \verb+Cercle_epais+ permettant de dessiner un cercle
dont le centre \verb+(x,y)+, le rayon, la couleur et l'\'epaisseur du trait
(exprim\'e en points) peuvent \^etre donn\'es par l'utilisateur. Deux
techniques sont envisageables: discuter les avantages et inconv\'enients de
chacune d'elles.
\item {\bf Animation}\\
\'Ecrire le programme \verb+Cercle_anim+ affichant un cercle centr\'e dans
la fen\^etre et dont le rayon cro\^{\i}t selon un pas (en nombre de pixels)
donn\'e par l'utilisateur. L'affichage du cercle est stopp\'e lorsque le
cercle atteint la plus grande dimension (largeur ou hauteur de la fen\^etre.
Ces dimensions ont \'et\'e pr\'ealablement fournies par l'utilisateur.
\item {\bf Saisie de points avec la souris}\\
\'Ecrire le programme \verb+Polygone+ permettant \`a l'utilisateur de
dessiner un polygone dans une fen\^etre en cliquant dans la fen\^etre pour
indiquer la position des \verb+n+ sommets. Le nombre \verb+n+ sera
pr\'ealablement fourni par l'utilisateur et permettra de g\'en\'erer un
polygone de (\verb+n-1+) ar\^etes.
\item Transformer les programme pr\'ec\'edent en fonction appelable partir d\,'un
menu
\end{enumerate}
\end{document}
|