TP : Dessiner des polygones

Documents pareils
AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

chapitre 4 Nombres de Catalan

TBI et mathématique. Pour vous soutenir dans votre enseignement des mathématiques. Les outils du logiciel Notebook. les ressources internet

Deux disques dans un carré

Utilisation du logiciel Epson Easy Interactive Tools

Angles orientés et trigonométrie

MANUEL TBI - STARBOARD

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

PROBLEME(12) Première partie : Peinture des murs et du plafond.

Chapitre 2 : Caractéristiques du mouvement d un solide

MAT2027 Activités sur Geogebra

point On obtient ainsi le ou les points d inter- entre deux objets».

Fonctions de deux variables. Mai 2011

1S Modèles de rédaction Enoncés

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Logiciel SCRATCH FICHE 02

Chapitre 4: Dérivée d'une fonction et règles de calcul

Savoir lire une carte, se situer et s orienter en randonnée

Si deux droites sont parallèles à une même troisième. alors les deux droites sont parallèles entre elles. alors

Math 5 Dallage Tâche d évaluation

Mathématiques et petites voitures

COMPTE-RENDU «MATHS EN JEANS» LYCEE OZENNE Groupe 1 : Comment faire une carte juste de la Terre?

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Le contexte. Le questionnement du P.E.R. :

VOS PREMIERS PAS AVEC TRACENPOCHE

SOMMAIRE. 1. Préambule Le calendrier Trajectoire d un objet lancé Régression linéaire...9

Réalisation de cartes vectorielles avec Word

Celestia. 1. Introduction à Celestia (2/7) 1. Introduction à Celestia (1/7) Université du Temps Libre - 08 avril 2008

Introduction à Adobe Illustrator pour la cartographie et la mise en page

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Solutions du chapitre 4

Leçons et exemples de programmation en Logo

GIMP. Le traitement d'images libre INSTALLATION SUR WINDOWS

5 ème Chapitre 4 Triangles

Synoptique des icônes Interwrite Workspace

Représentation géométrique d un nombre complexe

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Calcul intégral élémentaire en plusieurs variables

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

EXERCICES DE REVISIONS MATHEMATIQUES CM2

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

REPRESENTER LA TERRE Cartographie et navigation

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

La C.A.O (Conception Assistée par Ordinateur). Le logiciel de C.A.O.

Traceur de courbes planes

S'orienter et se repérer sur le terrain avec une carte

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Tp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13

Note de cours. Introduction à Excel 2007

Cabri et le programme de géométrie au secondaire au Québec

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

La révolution des satellites de Jupiter

Paris et New-York sont-ils les sommets d'un carré?

Faire de la déformation interactive avec GIMP

My Custom Design ver.1.0

PRATIQUE DU COMPAS ou

Initiation à l algorithmique

L espace de travail de Photoshop

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours.

Utilisation du logiciel ImageJ gratuit

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

ALGORITHMIQUE ET PROGRAMMATION En C

OLYMPIADES ACADÉMIQUES DE MATHÉMATIQUES

DOSSIER D'ACTIVITES SUR TUXPAINT Dessiner avec Tuxpaint. Objectifs :

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Notice pour Visiteur du Site Perso

Fête de la science Initiation au traitement des images

Recherche dans un tableau

Q6 : Comment calcule t-on l intensité sonore à partir du niveau d intensité?

Les Enseignants de l Ere Technologique - Tunisie. Niveau 1

Diviser un nombre décimal par 10 ; 100 ; 1 000

Python - introduction à la programmation et calcul scientifique

Mesure d angles et trigonométrie

LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE. Bonne utilisation à toutes et tous! UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE

Les algorithmes de base du graphisme

Tutoriel : logiciel de présentation Openoffice Impress

Mathématiques I Section Architecture, EPFL

Problèmes sur le chapitre 5

Chapitre 6. Fonction réelle d une variable réelle

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Programmation en Java IUT GEII (MC-II1) 1

Découverte et prise en main de SWEET HOME 3D

ACTIVITÉ DE PROGRAMMATION

Aide GeoGebra. Manuel Officiel 3.2. Markus Hohenwarter et Judith Hohenwarter

OLYMPIADES ACADEMIQUES DE MATHEMATIQUES. 15 mars 2006 CLASSE DE PREMIERE ES, GMF

Sujet. calculatrice: autorisée durée: 4 heures

Création de maquette web

Exercice n o 54 : Tracer le graphique d une fonction

PROGRAMME D HABILETÉS EN FAUTEUIL ROULANT (WSP-F)

Supports. Images numériques. notions de base [1]

Le seul ami de Batman

Interaction et Vis ualis ation en Géosicence

MODE OPÉRATOIRE. VI) Le projet mené dans le cadre de la technologie. Le projet porte sur la réalisation d une horloge CD.

Développements limités. Notion de développement limité

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Championnat de France de Grilles Logiques Finale 7 juin Livret d'instructions

Transcription:

Univ. Lille 1 - Licence STS 1ère année 2013-2014 Objectifs du TP Ce TP a pour but d'utiliser des boucles pour et d'eectuer des calculs géométriques pour dessiner des polygones. Initiation à la programmation TP : Dessiner des polygones 1 Le module camlgraph Le module Camlgraph est une adaptation du module graphics livré avec toutes les distributions de Objective Caml. Il reprend les mêmes fonctions avec les mêmes noms. Ce module permet de dessiner des points, des segments, des polygones, des cercles, de remplir certaines zones dans une fenêtre graphique. Cette fenêtre graphique peut être considérée comme un tableau de points repérés par leurs coordonnées (cf gure 1). Ces coordonnées sont des nombres entiers. Seuls les points dont les deux coordonnées sont positives ou nulles et inférieures à la largeur et à la hauteur de la fenêtre sont visibles. L'origine du repère, point de coordonnées (0, 0) est le coin inférieur gauche de la fenêtre. Figure 1 Système de coordonnées du module Camlgraph L'ensemble des fonctions oertes par ce module n'est pas présenté ici. Seules les fonctions nécessaires pour ce TP sont présentées. Pour les autres, voir le poly. 1

1.1 Utiliser le bon interprète Pour utiliser le module camlgraph dans les salles de TP, le moyen le plus simple est d'appeler l'interprète ocamlgraph. > ocamlgraph Objective Caml version 3.10.2 Camlgraph FIL IEEA universite de Lille 1 # Pour utiliser les fonctions de ce module, il faut préalablement taper la commande # open Camlgraph ;; # Dans la suite nous supposerons toujours cette commande eectuée. 1.2 Ouverture d'une fenêtre graphique Aucune fonction du module ne peut-être utilisée avant l'ouverture d'une fenêtre graphique. Cette ouverture s'eectue grâce à la procédure open_graph. val open_graph : string -> unit open_graph (s) ouvre une fenêtre graphique dont les dimensions sont indiquées par la chaîne s. Pour une ouverture de la fenêtre sur l'écran par défaut, la chaîne doit commencer par un espace. Par exemple, pour ouvrir une fenêtre graphique de 640 pixels 1 en largeur sur 480 pixels en hauteur, on utilise la commande : # open_graph (" 640x480");; Notez bien la présence d'un espace au début de la chaîne de caractères qui précise les dimensions. Remarque : Il ne peut y avoir qu'une seule fenêtre graphique à la fois. Lorsqu'une fenêtre graphique est ouverte, l'exécution d'une nouvelle commande d'ouverture n'a aucun eet. 1.3 Fermeture d'une fenêtre graphique La procédure close_graph permet de fermer la fenêtre graphique courante. val close_graph : unit -> unit close_graph () ferme de la fenêtre graphique. 1. Un pixel (picture element) est un élément indécomposable d'image. 2

1.4 Positionnement du crayon sur la fenêtre graphique Pour dessiner sur la fenêtre graphique, on utilise un crayon virtuel qui peut être placé là où on veut sur la fenêtre grâce à deux procédures présentées ci-dessous. La première de ces deux procédures est moveto qui place le crayon au point dont on donne les coordonnées en paramètre. val moveto : int * int -> unit moveto (x,y) positionne le crayon au point de coordonnées (x,y). La première coordonnée, x, est l'abscisse, et la seconde, y, est l'ordonnée. La seconde procédure est rmoveto qui translate le crayon selon le vecteur dont on passe les coordonnées en paramètre. val rmoveto : int * int -> unit rmoveto (x,y) translate le crayon selon le vecteur de coordonnées (x,y). Remarque : Le crayon peut avoir des coordonnées d'un point qui ne gure pas dans la fenêtre graphique. Les tracés eectués à partir de ce point ne sont pas visibles. 1.5 Tracé d'un segment Pour tracer des segments, il y a aussi deux procédures. La première de ces procédures permet de tracer un segment depuis la position courante vers un point dont les coordonnées sont données en paramètres. val lineto : int * int -> unit lineto (x,y) trace un segment depuis la positon courante jusqu'au point de coordonnées (x,y). La seconde procédure permet de tracer un segment depuis la position courante selon un vecteur passé en paramètre. val rlineto : int * int -> unit rlineto (x,y) trace un segment depuis la positon courante selon le vecteur de coordonnées (x,y). Exemple 1 : Voici un exemple d'utilisation de ces commandes (qui suppose qu'une fenêtre graphique de dimension 640 480 a été ouverte). Le dessin produit par ces commandes est montré sur la gure 2. # moveto (0,240) ;; # lineto (640,240) ;; # rmoveto (-320,-240);; # rlineto (0,480) ;; 3

Figure 2 Dessin 1. 1.6 Eacer le contenu d'une fenêtre graphique Pour eacer le contenu d'une fenêtre graphique, on utilise la procédure clear_graph. val clear_graph : unit -> unit clear_graph () eace le contenu de la fenêtre graphique. 2 Dessins de polygones réguliers convexes 2.1 Petits dessins à la main Question 1 En utilisant les fonctions présentées dans la première partie, ouvrez une fenêtre graphique de dimension 640 480, et dessinez un carré dont le centre est au centre de la fenêtre, dont les côtés sont parallèles à ceux de la fenêtre, et de longueur 200 (cf gure 3). Question 2 En utilisant les fonctions présentées dans la première partie, ouvrez une fenêtre graphique de dimension 640 480, et dessinez un carré dont le centre est au centre de la fenêtre, dont les diagonales sont parallèles aux côtés de la fenêtre, et dont les diagonales sont de longueur 200 (cf gure 4). 4

Figure 3 Carré côtés // bords fenêtre 2.2 Dessiner un polygone régulier convexe Un polygone régulier convexe, est un polygone dont tous les sommets sont inscrits sur un cercle et sont régulièrement répartis sur ce cercle, et dont les côtés rejoignent deux sommets consécutifs sur le cercle. Le centre du cercle coincide alors avec le centre de gravité du polygone (cf gure 5). Les fonctions utiles pour dessiner des polygones réguliers convexes 1. les fonctions trigonométriques sin et cos : float > float (les angles sont mesurés en radians) ; 2. les fonctions de conversion des entiers en ottants float_of_int et des ottants en entiers int_of_float ; La constante π 3, 141592... (rapport de la circonférence du cercle à son rayon) intervient dans les calculs des coordonnées des sommets d'un polygone régulier. Question 3 En sachant que π = 4 arctan (1), dénissez en Caml une constante nommée pi. En Caml, la fonction arctan est nommée atan. Question 4 consécutifs? Question 5 Pour un polygone régulier convexe à n côtés, quel est l'angle au centre entre deux rayons Dessinez un triangle équilatéral dont le centre de gravité coincide avec le centre de la fenêtre, dont une des trois hauteurs est horizontale, et dont les sommets sont à une distance égale à 200 du centre de gravité. 5

Figure 4 Carré diagonales // bords fenêtre Question 6 Réalisez une procédure polygone_convexe qui dessine un polygone régulier convexe. Cette procédure doit prendre quatre paramètres : 1. n : le nombre de côtés (int) ; 2. cx et cy les coordonnées du centre du cercle circonscrit (int) ; 3. r : le rayon du cercle circonscrit (int). Le type de cette procédure est donc int int int int > unit. Question 7 Utilisez votre procédure polygone_convexe pour réaliser un dessin comme celui montré à la gure 7 constitué de 10 pentagones dont les centres sont régulièrement disposés sur un cercle. 3 Dessins de polygones étoilés Les polygones réguliers étoilés dièrent des polygones réguliers convexes en ce sens que les côtés du polygone ne relient plus deux sommets consécutifs du cercle circonscrit (cf gure 8). Question 8 En étudiant la gure 8, adaptez la procédure polygone_convexe pour en faire une procédure polygone_etoile qui dessine un polygone étoilé. Cette procédure devra certainement prendre un cinquième paramètre (Voir les deux étoiles à 9 côtés de la gure). Question 9 Comment, en utilisant la procédure polygone_etoile, peut-on (très simplement) réaliser le dessin montré sur la gure 9? Question 10 Avec la procédure polygone_etoile, réalisez le dessin de la gure 10. 6

Figure 5 Un pentagone inscrit dans un cercle Figure 6 Triangle équilatéral 7

Figure 7 10 pentagones centrés sur un cercle Figure 8 4 polygones étoilés 8

Figure 9 Avec des polygones étoilés Figure 10 Avec des pentagones étoilés 9