Série 17 : Début de l'exercice "Cinematique inverse". Dessin 2D avec la librairie Open GL Buts
|
|
- Marie-Hélène Agnès Charles
- il y a 8 ans
- Total affichages :
Transcription
1 Série 17 : Début de l'exercice "Cinematique inverse". Dessin 2D avec la librairie Open GL Buts Le but des trois séries est d'écrire une petite application graphique interactive. Il s'agit d'un exemple très simple de cinématique inverse, une technique utilisée en robotique. Dans cette série, vous étudierez la partie mathématique du problème, ainsi que l'utilisation de la librairie Open GL pour l'affichage graphique en deux dimensions. Dans les séries 18 et 19, vous verrez comment utiliser GLUT/GLUI dans l'application, pour la partie interface utilisateur. Exercice 0 en anglais: Running OpenGL applications on VirtualBox image of CO configurations (document pdf séparé) Exercice 1 théorique (à faire avant la séance de TP): cinématique inverse (étude du problème) Soit une chaîne articulée en 2D, composée de deux parties rigides et de deux articulations: Les paramètres fixes de cette chaîne sont les longueurs l 1 et l 2 des deux parties rigides. Par contre, les angles alpha et beta des deux articulations peuvent varier (sans limites), donnant ainsi lieu à une infinité de configurations différentes. La position (x E, y E ) de l'extrémité de la chaîne, représentée par un carré blanc et appelée effecteur, dépend de ces quatre paramètres (l 1, l 2, alpha et beta), et peut
2 être calculée comme suit: Un problème fondamental en robotique (appelé cinématique inverse) consiste à calculer les angles alpha et beta pour que l'effecteur atteigne une position désirée (x B, y B ). Ce problème est compliqué car il n'y a pas forcément une et une seule solution. Par exemple, la position désirée peut ne pas être atteignable: dans ce cas il n'y a pas de solution. D'un autre coté, si la position est atteignable, il peut exister deux configurations pour l'atteindre, et il faut bien en choisir une. Question: Déterminez la condition d'atteignabilité d'une position (x B, y B ) par l'effecteur, en fonction des longueurs l 1 et l 2. La condition est facilement exprimée à partir du "rayon": Ensuite représentez graphiquement l'espace atteignable par l'effecteur. En faisant quelques calculs, il est possible de déterminer l'une des deux solutions au problème de cinématique inverse, qui donne alpha et beta en fonction des longueurs l 1 et l 2 et de la position désirée (x B, y B ), quand celle-ci est atteignable: il faut encore gérer correctement le cas où r=0 (car il existe une infinité de solutions si l 1 = l 2 ), et le cas où le but n'est pas atteignable (car il faut déterminer une configuration telle que l'effecteur soit aussi proche que possible du but). Remarque: Dans la librairie math.h, la fonction acos() permet de calculer l'inverse de la fonction cosinus. La fonction atan2(y,x) retourne la valeur de arctan(y/x) entre +/-. Enfin, la constante est aussi déjà définie dans math.h (macro M_PI). Exercice 2 (niveau 0): Démonstration de l'objectif à atteindre
3 Copiez chez vous le répertoire boulic/serie17. Il contient une démo très partielle de l'application de cinématique inverse, ainsi que les fichiers source (incomplets) de l'application, que vous devrez compléter aujourdhui. Pour commencer, placez-vous dans votre répertoire serie17 et lancez la démo en tapant./demo_cine.x. Cet exécutable montre seulement ce que vous devez obtenir aujourdhui comme affichage pour les valeurs initiales des paramètres (longueurs des segments et position du but). Les deux cercles concentriques représentent les limites de l'espace atteignable par l'effecteur. Remarque: une nouvelle version du code source sera fournie pour la série19. Architecture du programme L'application que nous vous fournissons pour cette série est une version simplifiée du module principal de votre prochain projet. Il est donc très important que vous compreniez l'architecture d'un tel programme. Il s'agit d'une application composée de plusieurs fichiers source. Il faut donc utiliser la commande make (voir série 15) pour pouvoir générer l'exécutable cine.x. Regardez la liste de fichiers qui composent cette application: chaque module s'occupe d'une partie bien précise. Cela illustre le principe de séparation des fonctionalités. Ici, il y a deux modules: chaine : regroupe les fonctions relatives à la chaîne articulée (calcul de cinématique inverse + appels de graphic pour faire un dessin). graphic : fournit des fonctions pour l'affichage de primitives graphiques (segment, rectangle et cercle). Analysez les modules chaine et graphic. Notez que le nom de chaque fonction exportée par un module commence par le même identificateur (chaine_ ou graphic_). Dans un grand projet, cela permet d'identifier automatiquement la provenance d'une fonction à partir de son nom. Notez aussi que tous les prototypes des fonctions exportées par un module se trouvent dans le fichier en-tête (.h), encore appelé l'interface du module. Enfin, le programme principal se trouve dans le fichier cine.cpp et fait appel aux modules ci-dessus. L'extension "cpp" montre que cine.cpp est écrit en C++. Cependant, l'essentiel de ce code source est du C que nous connaissons bien. Les deux seules différences sont les suivantes: 1) Comment inclure des fichier en-têtes écrits en C dans un fichier écrit en C++: Dans un fichier C++ il faut inclure les fichiers en-tête des modules C de la manière suivante : extern "C"
4 #include "graphic.h" #include "chaine.h" 2) Comment déclarer des variables globales restreintes à un fichier en C++: En C nous utilisons le mot clef static pour restreindre la portée d'une variable globale au fichier où elle est déclaré, par exemple: // syntaxe correcte en C mais deprecated en C++ static float length_segment1 ; En C++ il fautdéclarer les variables globales restreinte au module avec l'espace de noms non-nommé, ce qui donne pour l'exemple précédent: namespace float length_segment1; Recommendation de programmation robuste: on cherchera toujours à réduire le nombre de telles variables globales au strict nécessaire. Structure de la fonction main( ) première notion de programmation par évènements la fonction principale est composée de deux partie caractéristiques: un ensemble d'initialisations suivi d'une boucle infinie de traitement des évènements. On ne pourra sortir de cette boucle infinie que par un appel exit(). La boucle infinie est cachée dans l'appel de la dernière fonction de l'exemple à la ligne 21. Nous décrivons d'abord les initialisations. 1 int main(int argc, char* argv[]) 2 3 int main_window; // pour le numéro d'identification de la fenêtre 4 5 glutinit(&argc, argv); // init GLUT 6 7 glutinitdisplaymode( GLUT_RGB GLUT_DOUBLE GLUT_DEPTH ); 8 9 glutinitwindowposition( 50, 50 ); // pas toujours prise en compte glutinitwindowsize( 400, 400 ); // taille de la fenêtre main_window = glutcreatewindow( "Serie 17" ); // creation fenêtre glutdisplayfunc( display_cb ) // fonction callback d'affichage glutreshapefunc( reshape_cb ) // fonction callback reshape 18 19
5 20 21 glutmainloop(); // boucle infinie de traitement des évènements... Pour la série de cette semaine vous trouverez seulement des commandes GLUT qui définissent la fenêtre dans laquelle on va dessiner avec OPEN-GL. Ce programme repose en particulier sur une fenètre graphique, appelée main_window, dans laquelle nous allons exécuter des commandes de dessin. C'est pourquoi la fonction main commence par définir et créer cette fenêtre de dessin. Le code ci-dessous montre la définition d'une zone de taille 400 x 400 pixels puis la création de la fenètre main_window par l'appel à glutcreatewindow() à la ligne 13: La suite des initialisations est composée de la déclaration de quelques fonctions callback qui seront exécutées pendant l'exécution de la boucle infinie, en réponse à des évènements. On appelle "évènement" une action élémentaire produite par l'utilisateur du programme telle que: "cliquer sur un bouton de la souris", "modifier la taille de la fenètre graphique", "déplacer la fenètre graphique", "frapper sur une touche du clavier" etc... Il est possible d'écrire une fonction pour chacun de ces évènements. Une telle fonction est automatiquement exécutée si l'évènement se produit pendant l'exécution du programme. Ces fonctions sont appelée des fonctions callback (nous les distinguons en adoptant la convention d ajouter _cb à la fin de leur nom). Elles doivent être déclarées à GLUT dans la phase d'initialisation avant de lancer la boucle infinie. Cela est fait dans le code fourni aujourdhui pour les fonctions callback display_cb et reshape_cb: La fonction callback display_cb est automatiquement appelée quand la fenètre est bougée ou rendue à nouveau visible ; son but est de refaire le dessin. La seconde fonction callback reshape_cb est automatiquement appelée lorsque la fenêtre change de taille ; son but est d'ajuster la projection si le rapport largeur/hauteur change. Lorsqu'on déclare une fonction callback (lignes 15 et 17) on fournit un pointeur de fonction à GLUT qui le stocke dans ses structures de données internes. Ce pointeur est ensuite utilisé pour appeler la fonction automatiquement quand l'évènement est détecté. Voici la description détaillée des fonctions utilisées pour déclarer les fonctions callback. void glutdisplayfunc(void (*displayfunc)(void)); Définit la fonction exécutée automatiquement par GLUTquand un événement intervient entraînant le rafraîchissement de l'image affichée (création initiale e la fenêtre d'affichage, déplacement, agrandissement, réduction, réactivation en avant-
6 plan, rdre par programme,...). La fonction displayfunc passée en paramètre ne doit assurer l'affichage que d'une seule image. void glutreshapefunc(void (*fonct)(int largeur, int hauteur)); Définit la fonction exécutée automatiquement par GLUT quand la taille d'une fenètre est modifiée. Cette fonction recalcule les paramètres de la projection (orthographique ou perspective) pour que le rapport largeur/hauteur (appelé aspect-ratio ) de la projection soit le même que celui de la fenètre. Si cela n'est pas vérifié cela introduit une distorsion dans le dessin (cf cours). Voici le pseudocode de la boucle infinie : //Pseudo-code glutmainloop() while(1) //infinite loop if (graphic has changed) function call with pointer provided by display_cb else if (window position or size has changed) function call with pointer provided by reshape_cb else if(keyboard or mouse event) // évt clavier ou souris ; série 19 function call with pointer provided by corresponding callback decl. else // aucun évènement ; sera vu à la série 19 function call with pointer provided by the idle callback declaration Mise oeuvre de GLUT et de OPEN-GL Fichiers en-tête: pour Open GL, il faut GL/glu.h Bibliothèques (en anglais: Librairies): pour utiliser les bibliothèques compilées de GLUT et Open GL, il faut fournir leur liste avec les option -l (avec l comme library) : - lglut -lgl -lglu -lm -Llib lors de l'édition des liens (cela est déjà fait dans le fichier Makefile qui vous est fourni). Exercice 3 (niveau 0): Introduction à OpenGL (voir aussi le cours) Open GL est un standard industriel pour faire du dessin 2D et 3D. Dans le cadre des TP on s'en tiendra à la 2D (dessin dans le plan). Open GL est une librairie de fonctions graphiques que l'on peut appeler depuis son code C. Pour les distinguer d'autres fonctions (d'autres librairies), elles commencent toutes par le préfixe gl. Notre module graphic rassemble des fonctions dépendantes de Open GL : l'interface de ce module (c.à.d. les fonctions qu'il exporte et dont les prototypes se trouvent dans le fichier en-tête graphic.h) vous permet d'accéder aux fonctions graphiques dont vous aurez besoin. Pour cette série vous devez compléter une fonction de ce module: donc ouvrez déjà graphic.c en édition.
7 Remarque: vous trouvez la liste de toutes les fonctions disponibles dans Open GL sur la page web du cours. Le site officiel de Open GL est: L'affichage se fait dans la partie de l'écran du widget glut. Avant de pouvoir dessiner, il faut avoir établi un système de coordonnées. Système de coordonnées Voici la convention utilisée par Open GL: l'axe x est horizontal et pointe vers la droite de l'écran dans le sens positif. L'axe y est vertical et pointe vers le haut de l'écran dans le sens positif. Par défaut, l'intervalle en x et en y est [0,1]. Cela signifie que le domaine visualisé sur toute la fenêtre est le sous-espace [0, 1] x [0, 1] : bien sûr, il s'agit de coordonnées de type flottant. L'utilisateur peut définir ses propres valeurs min et max en x et en y avec la fonction glortho. Attention: il faut appeler la fonction glloadidentity () avant. Exemple: glloadidentity (); glortho (-10., +10., -5., +5., -1, 1); Cela définit un domaine pour x variant entre -10. et +10., et un domaine pour y entre -5. et +5. Le centre du widget glut sera donc à l'origine du domaine. (ignorez les valeurs -1 et 1) Dessin 2D de primitives graphiques On peut maintenant voir les véritables fonctions de dessin. Nous allons nous limiter au traçage des primitives géométriques suivantes: segment, rectangle et cercle. Dans tous les cas, le principe est le même, illustré par l'exemple suivant qui dessine un rectangle (vide) de centre (x c, y c ), de largeur width et de hauteur height (voir
8 fonction graphic_draw_rectangle () dans graphic.c): glbegin (GL_LINE_LOOP); glvertex2f (xc + width/2, yc + height/2); glvertex2f (xc - width/2, yc + height/2); glvertex2f (xc - width/2, yc - height/2); glvertex2f (xc + width/2, yc - height/2); glend (); L'instruction glvertex2f, qui spécifie un sommet de la primitive, peut être appelée un nombre quelconque de fois entre les deux fonctions glbegin et glend, suivant ce que l'on souhaite dessiner. Le mode choisi (l'argument de la fonction glbegin) influence aussi le résultat. Voyons quelques modes simples: GL_LINE_STRIP: trace des segments connexes, dont les sommets sont donnés. GL_LINE_LOOP: trace le contour d'un polygone dont les sommets sont donnés (comme GL_LINE_STRIP mais un segment reliant le premier sommet au dernier est aussi dessiné). GL_POLYGON: comme GL_LINE_LOOP, mais le polygone (qui doit être convexe), est aussi rempli (filled, en anglais). Exercice: complétez la fonction graphic_draw_circle dans le fichier graphic.c (dessinez en fait un polygone régulier ayant une cinquantaine de côtés). Epaisseur de lignes
9 Il est possible de changer l'épaisseur des lignes dessinées. Par défaut, celle-ci est de un pixel. En appelant la fonction gllinewidth (4.) par exemple, toutes les lignes dessinées ensuite auront une épaisseur de 4 pixels. Pour revenir à une épaisseur de un pixel, il suffit d'appeler gllinewidth (1.); Couleurs (au format RGB) Il est possible de contrôler la couleur des objets dessinés. Une couleur se spécifie d'après ses composantes RGB (Red - Green - Blue, en anglais). Chaque composante peut varier entre 0 et 1. Cela permet de synthétiser des millions de couleurs. Par exemple la couleur RGB (0,0,1) correspond à un bleu pur, alors que la couleur RGB (1,1,0) correspond au jaune. La couleur RGB (0.5, 0.5, 0.5) correspond à un gris moyen. Pour établir une couleur, on peut écrire: glcolor3f (1.0, 1.0, 0.); /* jaune */ [cette fonction semble ne pas bien fonctionner en COSUN] ou bien, en déclarant un tableau: float violet [3] = 1., 0., 1. ; // composantes R,G,B glcolor3fv (violet); Processus de visualisation Quatre transformations successives utilisées au cours du processus de création d'une image: 1. Transformation de modélisation (Model): Permet de créer la scène à afficher par création, placement et orientation des objets qui la composent. 2. Transformation de visualisation (View): Permet de fixer la position et l'orientation de la caméra de visualisation. 3. Transformation de projection (Projection): Permet de fixer les caractéristiques optiques de la caméra de visualisation (type de projection, ouverture,...). 4. Transformation d'affichage (Viewport): Permet de fixer la taille et la position de l'image sur la fenêtre d'affichage. Effacement du contenu de la fenêtre On peut effacer complètement le contenu de la fenêtre, avec une couleur RGB au choix, en appelant les deux fonctions Open GL suivantes: glclearcolor (rouge, vert, bleu, 0.); // spécifie la couleur glclear (GL_COLOR_BUFFER_BIT); Back buffer et front buffer (double buffering) Il est important de comprendre que tous les appels graphiques ne sont pas exécutés
10 à l'écran même. Si vous dessinez une ligne, celle-ci n'apparaîtra pas immédiatement à l'écran. En effet, Open GL dessine dans une zone mémoire cachée, appelée "back buffer" en anglais. Lorsque vous avez terminé de dessiner votre image, pour la faire apparaître vous devez demander de copier cette zone mémoire à l'écran (qui est aussi un buffer, appelé "front buffer"). La fonction pour afficher le back buffer est glutswapbuffers(). Exercice 4 (niveau 0): Architecture et introduction Open GL / GLUT (document pdf séparé) Exercice 5 (niveau 1): Travail à faire Vous allez maintenant compléter (en partie) les fichiers chaine.c et cine.cpp. Travail à faire: Compilez le programme, et lancez l'exécutable. A ce stade, rien n'est affiché dans la fenêtre GLUT, et son contenu reste dans un état indéterminé. Complétez les fonctions chaine_rayon_min et chaine_rayon_max, d'après votre réponse à la question de l'exercice 1. Elles retournent les limites de l'espace atteignable par l'effecteur (situé entre deux cercles). Complétez la fonction chaine_dessine dans le fichier chaine.c. Elle doit dessiner la chaîne, qui est composée de deux segments, de deux articulations (cercles de rayon 0.2) - exploitez la 1ère formule de l'exercice 1 pour calculer la position de l'effecteur. Toutes les parties doivent être de couleur (0.2, 0.8, 1.0), et l'épaisseur de ligne doit être de 3 pixels. Remarque: Utilisez les fonctions mises à disposition par le module graphic.c pour dessiner les segments ou les cercles. Faites make pour vérifier que vous n'avez pas d'erreurs de compilation. Le résultat ne devrait pas changer. Ensuite, complétez, dans le fichier cine.cpp, la fonction redraw_all(). Cette fonction doit utiliser les variables globales au module length_segment1 et length_segment2 (longueurs des deux segments) ainsi que but_x et but_y (coordonnées de la position du but à atteindre). Cette fonction est appelée à chaque fois qu'une remise à jour complète du contenu de la fenêtre doit être effectuée. Elle doit, dans l'ordre: effacer le contenu de la fenêtre (en noir) établir un domaine de projection dont l'origine se trouve au centre de la fenêtre, et de coté 40 appeler la fonction chaine_calcule_angles pour calculer les angles alpha et beta (la position du but est passée en argument);
11 dessiner les limites de l'espace atteignable (avec un appel à chaine_dessine_limites); dessiner la chaîne (appel à la fonction chaine_dessine que vous avez écrit); dessiner le but à atteindre avec un carré jaune plein de coté 0.4; enfin, faire apparaître le contenu de l'image en appelant la fonction glutswapbuffers(). Ensuite, régénérez un exécutable et corrigez d'éventuelles erreurs. A ce stade, votre application devrait afficher la chaîne ainsi que les limites de l'espace atteignable, dans sa configuration par défaut. Cependant vous n'avez aucun moyen d'interagir avec l'application. Dans la série 19, vous la complèterez pour pouvoir spécifier interactivement la longueur des segments ainsi que le but à atteindre.
Chapitre II : Infographie et bibliothèques graphiques
Chapitre II : Infographie et bibliothèques graphiques Le premier chapitre a posé les bases perceptives et techniques de la production et de l'affichage d'images, ou plus globalement d'objets graphiques.
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailFête de la science Initiation au traitement des images
Fête de la science Initiation au traitement des images Détection automatique de plaques minéralogiques à partir d'un téléphone portable et atelier propose de créer un programme informatique pour un téléphone
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailLes algorithmes de base du graphisme
Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailInterface PC Vivago Ultra. Pro. Guide d'utilisation
Interface PC Vivago Ultra Pro Guide d'utilisation Version 1.03 Configuration de l'interface PC Vivago Ultra Configuration requise Avant d'installer Vivago Ultra sur votre ordinateur assurez-vous que celui-ci
Plus en détailDessiner dans Galaad FRANÇOIS PALLUT
Dessiner dans Galaad FRANÇOIS PALLUT Paternité - Pas d'utilisation Commerciale - Pas de Modification : http://creativecommons.org/licenses/by-nc-nd/2.0/fr/ Table des matières Objectifs 5 Introduction 7
Plus en détailVOS PREMIERS PAS AVEC TRACENPOCHE
Vos premiers pas avec TracenPoche page 1/16 VOS PREMIERS PAS AVEC TRACENPOCHE Un coup d'oeil sur l'interface de TracenPoche : La zone de travail comporte un script, une figure, un énoncé, une zone d analyse,
Plus en détailRapidolect Les Productions de la Columelle (1998-2006) Page 1
Page 1 Page 2 Logiciel Rapidolect RATIONNEL DU JEU Un bon lecteur possède dans sa tête des images précises des mots écrits qu'il connaît. Lorsqu'il parcourt un texte, ses yeux se déplacent par saccades
Plus en détailGestion de projet. GanttProject Didacticiel V1.0. 23 novembre 2013. Gérard Gervois Frédéric Giamarchi
Gestion de projet GanttProject Didacticiel V1.0 23 novembre 2013 Gérard Gervois Frédéric Giamarchi Département G.E.I.I. I.U.T. de Nîmes Université Montpellier II Présentation GanttProject est un logiciel
Plus en détailUtilisation du logiciel GALAAD
1 Sommaire: Présentation du logiciel GALAAD 1. Démarrer le programme........ 2. Présentation de l écran du logiciel....... Les barres d'outils, sauvegarder... 3. Créer un nouveau fichier........ 4. Préparer
Plus en détailAlgorithmique avec Algobox
Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions
Plus en détailTp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13
TP de création : utilisation des chemins vectoriels Finis les mauvais rêves : vous aurez enfin votre dreamcatcher (Indienss des Grands Lacs) 1 ) Créez une nouvelle image de 300 pixels sur 600 pixels en
Plus en détailDOSSIER D'ACTIVITES SUR TUXPAINT Dessiner avec Tuxpaint. Objectifs :
DOSSIER D'ACTIVITES SUR TUXPAINT Dessiner avec Tuxpaint Objectifs : Apprendre à l apprenant à connaître l'ordinateur Apprendre à l'apprenant à allumer l'ordinateur Faire découvrir à l'apprenant Linux Faire
Plus en détailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en détailTD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année
TD de supervision J.P. Chemla Polytech Tours Département productique 2ème année 1 Présentation de l équipement On veut superviser une cuve dans un batiment. Les informations à visualiser sont les suivantes
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailTUTORIEL IMPRESS. Ouvrir Impress cocher «présentation vierge», «suivant» cocher «écran», «suivant» cocher «standard», «créer»
TUTORIEL IMPRESS Ouvrir Impress cocher «présentation vierge», «suivant» cocher «écran», «suivant» cocher «standard», «créer» Une page impress s'ouvre : Le volet gauche contiendra toutes les diapositives
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailCours Excel : les bases (bases, texte)
Cours Excel : les bases (bases, texte) La leçon 1 est une leçon de base qui vous permettra de débuter avec Excel, elle sera fort utile pour les prochaines leçons. Remarque : à chaque fois qu il est demandé
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailNavigation dans Windows
Cours 03 Navigation dans Windows Comme je le disais en introduction, notre souris se révèle plus maligne qu'elle n'en a l'air. À tel point qu'il faut apprendre à la dompter (mais c'est très simple, ce
Plus en détailSommaire. Aide Page 1
Aide Page 1 Sommaire Objectif du logiciel............ 2 Présentation................ 2 Créer un nouveau quadrillage... 3 Démarrer un nouveau plan..... 3 Sélectionner une ligne......... 3 Insérer une nouvelle
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailDidacticiel de mise à jour Web
Didacticiel de mise à jour Web Copyright 1995-2012 Esri All rights reserved. Table of Contents Didacticiel : Création d'une application de mise à jour Web.................. 0 Copyright 1995-2012 Esri.
Plus en détail1. Introduction...2. 2. Création d'une requête...2
1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête
Plus en détailSeance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.
Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece
Plus en détailParcours FOAD Formation EXCEL 2010
Parcours FOAD Formation EXCEL 2010 PLATE-FORME E-LEARNING DELTA ANNEE SCOLAIRE 2013/2014 Pôle national de compétences FOAD Formation Ouverte et A Distance https://foad.orion.education.fr Livret de formation
Plus en détailSOMMAIRE... 1 ESPACE DU CLUB...
Documentation Extraclub Page 1/11 Sommaire SOMMAIRE... 1 ESPACE DU CLUB... 2 INTRODUCTION... 2 Bien utiliser la gestion du club... 2 Termes utilisés dans cet espace... 2 Par quoi commencer?... 2 L onglet
Plus en détailOnce the installation is complete, you can delete the temporary Zip files..
Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une
Plus en détailLES NOUVEAUTÉS DE ARCON 15 PRO
LES NOUVEAUTÉS DE ARCON 15 PRO La version 15 Professionnelle du moteur Arcon introduit les nouveautés suivantes. Notez que ces nouveautés ne sont pas présentes dans la version 15 SMB du moteur Arcon. SOMMAIRE
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailChoisir entre le détourage plume et le détourage par les couches.
Choisir entre le détourage plume et le détourage par les couches. QUEL CHOIX D OUTILS ET QUELLE METHODE, POUR QUEL OBJECTIF? Il existe différentes techniques de détourage. De la plus simple à la plus délicate,
Plus en détailChapitre 4 Pierre, papier, ciseaux
Python 3 : objectif jeux Chapitre 4 Chapitre 4 Pierre, papier, ciseaux (version graphique) 4.1. Thèmes abordés dans ce chapitre Le module tkinter : Label, Button Fenêtre Événements Réceptionnaire d'événements
Plus en détailTraitement numérique de l'image. Raphaël Isdant - 2009
Traitement numérique de l'image 1/ L'IMAGE NUMÉRIQUE : COMPOSITION ET CARACTÉRISTIQUES 1.1 - Le pixel: Une image numérique est constituée d'un ensemble de points appelés pixels (abréviation de PICture
Plus en détailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détailInstallation et prise en main
TP1 Installation et prise en main Android est le système d'exploitation pour smartphones, tablettes et autres appareils développé par Google. Pour permettre aux utilisateurs d'installer des applications
Plus en détailInitiation à la librairie graphique VTK
Initiation à la librairie graphique VTK Telecom Bretagne, Février 2011 Jean CHAOUI Objectif : Être capable de créer une scène 3D simple composée de quelques primitives géométriques et de pouvoir modifier,
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailProgrammation Objet - Cours II
Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à
Plus en détailTABLEAU CROISE DYNAMIQUE
EXCEL NIVEAU III Mireille DUCELLIER MARS 2003 BASE DE DONNEES RAPPEL Une base de données est une plage de cellules contiguës située sur une la feuille 1. Elle commence en A1. On parle alors de champs,
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailLES TOUT PREMIERS PAS
DESMODO, un logiciel de gestion d idées http://www.desmodo.net/ LES TOUT PREMIERS PAS Desmodo est un logiciel (libre) qui permet, entre autre, de visualiser et de synthétiser, de manière organisée, sous
Plus en détailTRUCS & ASTUCES SYSTEME. 1-Raccourcis Programme sur le Bureau (7)
TRUCS & ASTUCES SYSTEME 1-Raccourcis Programme sur le Bureau (7) 2- Mettre la souris sur Tous les programmes 3- Clic DROIT sur le programme dont on veut créer un raccourcis 4- Dans le menu contextuel Clic
Plus en détailTBI-DIRECT. Bridgit. Pour le partage de votre bureau. Écrit par : TBI Direct. http://www.tbi-direct.fr
TBI-DIRECT Bridgit Pour le partage de votre bureau Écrit par : TBI Direct http://www.tbi-direct.fr Contenu Vue d'ensemble...4 Nom du serveur...5 Lancement du Bridgit...5 Installation du logiciel Bridgit
Plus en détailUtilisation du visualiseur Avermedia
Collèges Numériques Utilisation du visualiseur Avermedia Un visualiseur est aussi appelé caméra de table et ce nom rend mieux compte de sa fonction première à savoir filmer un document (revue,carte, dissection,
Plus en détailAdobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur
Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur I- Ouverture d une nouvelle feuille de travail Fichier / Nouveau (ou ctrl + N) Indiquer dans la fenêtre qui s ouvre
Plus en détailGuide pour la réalisation d'un document avec Open Office Writer 2.2
Guide pour la réalisation d'un document avec Open Office Writer 2.2 1- Lancement de l'application : Le Traitement de textes de la Suite OpenOffice peut être lancé : soit depuis le menu «Démarrer / Programmes/OpenOffice2.2/Writer
Plus en détailLe service d'agenda en ligne SOGo
http://cri.univ-lille1.fr/services/agenda Le service d'agenda en ligne SOGo Version 1.0 Décembre 2009 Assistance utilisateur : http://portail.univ-lille1.fr/ rubrique Suivi demandes Sommaire Introduction
Plus en détailTD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting
IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances
Plus en détailAccess 2007 FF Access FR FR Base
ACCESS Basic Albertlaan 88 Avenue Albert Brussel B-1190 Bruxelles T +32 2 340 05 70 F +32 2 340 05 75 E-mail info@keyjob-training.com Website www.keyjob-training.com BTW TVA BE 0425 439 228 Access 2007
Plus en détailLes tablettes et l'extranet Intermixt Mode d'emploi
Les tablettes et l'extranet Mode d'emploi Ce document vous présente les étapes vous permettant d avoir accès aux documents disponibles sur l'extranet d'. Vous pouvez éventuellement les télécharger pour
Plus en détailMy Custom Design ver.1.0
My Custom Design ver.1.0 Logiciel de création de données de broderie Mode d emploi Avant d utiliser ce logiciel, veuillez lire attentivement ce mode d emploi pour bien l utiliser correctement. Conservez
Plus en détailLeçon 18 Coupes et sections
Leçon 18 Coupes et sections SketchUp'version 5.0 exercices LES COUPES Les coupes, vous permettent de regarder à travers un modèle. Elles vous donnent la possibilité de faire des modifications sans avoir
Plus en détail2013 Pearson France Adobe Illustrator CC Adobe Press
Au cours de cette démonstration d Adobe Illustrator CC, vous découvrirez les nouvelles fonctionnalités du logiciel, comme les outils de retouche et la sélection du texte, ainsi que d autres aspects fondamentaux
Plus en détail@telier d'initiation
@telier d'initiation LES PREMIERS PAS Arborescence d'un ordinateur Créer/Renommer/ Supprimer des dossiers 1 / 8 L'arborescence Un ordinateur est rangé d'une certaine façon, que l'on appelle l'arborescence.
Plus en détailLe générateur d'activités
Le générateur d'activités Tutoriel Mise à jour le 09/06/2015 Sommaire A. Mise en route du Générateur d'activité... 2 1. Installation de Page... 2 2. Création des bases du générateur d'activités... 3 3.
Plus en détailLa C.A.O (Conception Assistée par Ordinateur). Le logiciel de C.A.O.
CAO1 La C.A.O (Conception Assistée par Ordinateur). Aujourd'hui, lorsque des ingénieurs décident de concevoir un nouveau produit, ils n'utilisent plus de stylo. Les plans sont réalisés sur ordinateur.
Plus en détailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
Plus en détailpcon.planner 6 Préparer et présenter une implantation en toute simplicité
pcon.planner 6 Préparer et présenter une implantation en toute simplicité Sommaire 1. Installation :... 3 2. Démarrer le logiciel :... 3 3. Interface :... 3 4. Naviguer :... 4 5. Réaliser une implantation
Plus en détailInitiation à linfographie
Ce support de cours de l Agence universitaire de la Francophonie est distribué sous licence GNU FDL. Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence
Plus en détailPublication Assistée par Ordinateur
Présentation OpenOffice Draw est l'outil de dessin vectoriel de la suite bureautique OpenOffice. De fait, Draw permet de réaliser certains documents comparables à ceux de Publisher, le logiciel de P.A.O.
Plus en détailPop-Art façon Roy Liechtenstein
1 sur 6 22/01/2010 22:35 Pop-Art façon Roy Liechtenstein Ce tutoriel peut paraître loin de la photographie, mais il contient des techniques très utiles, voire indispensables en matière de retouche. 1 -
Plus en détailSolutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
Plus en détailL import massif introduit plusieurs nouvelles fonctionnalités, selon que l on importe un thésaurus, un ensemble de valeurs contrôlées ou un corpus.
Import Massif Nouvelles fonctionnalités L import massif introduit plusieurs nouvelles fonctionnalités, selon que l on importe un thésaurus, un ensemble de valeurs contrôlées ou un corpus. Le fonctionnement
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailGL BE FLYER. Chef de projet de l équipe : SCIONICO Pierre
GL BE FLYER Chef de projet de l équipe : SCIONICO Pierre Membres de l équipe : BRESSON Adrien THIERY Kévin SCIONICO Pierre ALBERTINI Rémi ROBERT Cédric Tuteur du projet : GESQUIERE Gilles IUT de l'université
Plus en détailVision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007
Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................
Plus en détailHMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control
HMI target Visu / PLC HMI Pour réaliser une interface homme machine avec PLC control VERSION : 1.4 / PH DATE : 5 Novembre 2014 Sommaire Ce manuel explique de manière pratique les étapes successives pour
Plus en détailDébuter avec OOo Base
Open Office.org Cyril Beaussier Débuter avec OOo Base Version 1.0.7 Novembre 2005 COPYRIGHT ET DROIT DE REPRODUCTION Ce support est libre de droit pour une utilisation dans un cadre privé ou non commercial.
Plus en détailSynthèse d'images I. Venceslas BIRI IGM Université de Marne La
Synthèse d'images I Venceslas BIRI IGM Université de Marne La La synthèse d'images II. Rendu & Affichage 1. Introduction Venceslas BIRI IGM Université de Marne La Introduction Objectif Réaliser une image
Plus en détailFOXIT READER 6.0 Guide rapide. Table des matières... II Utilisation de Foxit Reader 6.0... 1. Lecture... 4. Travailler dans des documents PDF...
Table des matières Table des matières... II Utilisation de Foxit Reader 6.0... 1 Installer et désinstaller... 1 Ouvrir, Créer, Fermer, Enregistrer et Quitter... 1 Définir le style et l'apparence de l'interface...
Plus en détailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
Plus en détailUTILISATION DE L'APPLICATION «PARTAGE DE FICHIERS EN LIGNE»
UTILISATION DE L'APPLICATION «PARTAGE DE FICHIERS EN LIGNE» url : http://colleges.ac-rouen.fr/cahingt/partages/ UN PRINCIPE : le stockage est privé, le partage est public > tant que l'on ne partage pas,
Plus en détailMERLIN. Guide de démarrage rapide Gestion de projet professionnelle. 2010 ProjectWizards GmbH, Melle, Allemagne. Tous droits réservés.
MERLIN Guide de démarrage rapide Gestion de projet professionnelle 2010 ProjectWizards GmbH, Melle, Allemagne. Tous droits réservés. INTRODUCTION Bienvenue dans le guide de démarrage rapide de Merlin!
Plus en détailStockage du fichier dans une table mysql:
Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table
Plus en détailBAMOSONIC IT. - Mesure de niveau -
- Mesure de niveau - Le capteur de niveau F est destiné à la mesure de niveau de liquide sur des cuves de forme cylindrique ou rectangulaire avec possibilité d'un affichage en niveau, distance, volume
Plus en détailTutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)
Tutorial Ophcrack (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista) Ophcrack est un utilitaire gratuit permettant de cracker les mots de passe des sessions
Plus en détailTransférer et enregistrer les photos sur l'ordinateur
BML INFORMATIQUE Perfectionnement Séance N 4 Approche de la photo numérique Daniel Drux 15 Oct. 2014 Cette séance a pour but de vous aider à aborder la photo numérique en assimilant les notions de base.
Plus en détailManuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Plus en détailOrganiser vos documents Windows XP
Organiser vos documents Windows XP Dossier? Fichier? Qu'est ce que c'est? Un dossier (autrement appelé répertoire) est un élément dans lequel on peut mettre d'autres dossiers, ou des fichiers (ou les 2).
Plus en détailGuide d utilisation de fonctionnalités avancées de Beyond 20/20 (application à des données départementales issues de Sit@del2)
Guide d utilisation de fonctionnalités avancées de Beyond 20/20 (application à des données départementales issues de Sit@del2) Les indications ci-dessous ont pour objectif de guider la personnalisation
Plus en détailDETERMINER LA LARGEUR DE PAGE D'UN SITE et LES RESOLUTIONS d'ecran
DETERMINER LA LARGEUR DE PAGE D'UN SITE et LES RESOLUTIONS d'ecran dossier par Clochar SOMMAIRE 1. LES RESOLUTIONS d'ecran... 1 2. RESOLUTION de l écran et choix de la TAILLE DE LA PAGE... 2 3. AGRANDISSEMENT
Plus en détailLe prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
Plus en détailGESTION DU LOGO. 1. Comment gérer votre logo? 2. 2.1. Format de l image 7 2.2. Dimensions de l image 8 2.3. Taille de l image 9
GESTION DU LOGO 1. Comment gérer votre logo? 2 1.1. Insérer un logo 3 1.1.1. Insérer un logo dans le bandeau 3 1.1.2. Insérer un logo dans les éditions 4 1.2. Supprimer un logo 6 1.2.1. Supprimer un logo
Plus en détailTraitement de texte : Quelques rappels de quelques notions de base
Traitement de texte : Quelques rappels de quelques notions de base 1 Quelques rappels sur le fonctionnement du clavier Voici quelques rappels, ou quelques appels (selon un de mes profs, quelque chose qui
Plus en détailFreeway 7. Nouvelles fonctionnalités
! Freeway 7 Nouvelles fonctionnalités À propos de ce guide... 3 Nouvelles fonctionnalités en un coup d'oeil... 3 À propos de la conception d'un site web réactif... 3 Travailler avec les pages pour créer
Plus en détailOpérations de base sur ImageJ
Opérations de base sur ImageJ TPs d hydrodynamique de l ESPCI, J. Bico, M. Reyssat, M. Fermigier ImageJ est un logiciel libre, qui fonctionne aussi bien sous plate-forme Windows, Mac ou Linux. Initialement
Plus en détailGérer ses impressions en ligne
Gérer ses impressions en ligne Service d'impression en ligne et copieurs numériques en réseau E.N.T : onglet Services pratiques, Rubrique Gérer ses impressions. Octobre 2012 Version : 1.1.1 Direction des
Plus en détailLes chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Plus en détailTPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr
TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr 2015 Table des matières 1 TP 1 : prise en main 2 1.1 Introduction.......................................................
Plus en détailPRODIGE V3. Manuel utilisateurs. Consultation des métadonnées
PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailInfolettre #18 : Les graphiques avec Excel 2010
Infolettre #18 : Les graphiques avec Excel 2010 Table des matières Introduction... 1 Hourra! Le retour du double-clic... 1 Modifier le graphique... 4 Onglet Création... 4 L onglet Disposition... 7 Onglet
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détail