4 Le graphisme (2 nde partie)



Documents pareils
Le langage C. Séance n 4

Les structures. Chapitre 3

I. Introduction aux fonctions : les fonctions standards

Le prototype de la fonction main()

Cours 6 : Tubes anonymes et nommés

Introduction au langage C

1/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)

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

1 Création d une pièce. 2 Travail complémentaire. 1-1 Réglage des barres d outils. 1-2 Exemples de réalisation de pièces à l aide d un modeleur 3D

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Support de formation Notebook

Créer un modèle Impress

3IS - Système d'exploitation linux - Programmation système


1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Programmation système de commandes en C

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

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

COMMENCER AVEC VUE. Chapitre 1

Algorithmique et Programmation, IMA

Programmation système I Les entrées/sorties

Programmation Classique en langage C

Cours Programmation Système


Réalisation de cartes vectorielles avec Word

Programmation C++ (débutant)/instructions for, while et do...while

Les structures de données. Rajae El Ouazzani

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours Excel : les bases (bases, texte)

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Utilisation du logiciel GALAAD

Les algorithmes de base du graphisme

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Centre de formation: Collège IBN BASSAM - TEMARA. Ce cours est proposé par le professeur d informatique:

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Mes premiers diaporamas avec Open Office Impress?

Monter une photo en médaillon

Initiation au dessin Bitmap

Arguments d un programme

Java Licence Professionnelle CISII,

Les chaînes de caractères

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

Cours d algorithmique pour la classe de 2nde

Compression de Données - Algorithme de Huffman Document de Conception

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

Introduction à MATLAB R

GIMP. Le traitement d'images libre INSTALLATION SUR WINDOWS

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Java 7 Les fondamentaux du langage Java

Programme Compte bancaire (code)

Cours de D.A.O. Mécanique

V- Manipulations de nombres en binaire

Infolettre #18 : Les graphiques avec Excel 2010

Publication Assistée par Ordinateur

Carte encadrement glitter

My Custom Design ver.1.0

Introduction à Expression Web 2

Outils pour la pratique

L espace de travail de Photoshop

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

TP2 : tableaux dynamiques et listes chaînées

Les différentes étapes à suivre pour la création d un feuillet

GUIDE Excel (version débutante) Version 2013

LES TOUT PREMIERS PAS

Mise en forme d'un document écrit sous Word - quelques rappels pour consolider ses connaissances -

Examen d informatique première session 2004

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

Bases de programmation. Cours 5. Structurer les données

MEMENTO D'UTILISATION Du T.N.I. SmartBoard (Version )

Charpente visible sous plafond et couverture isolée

T u t o r i e l s PhotoFiltre

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

VOS PREMIERS PAS AVEC TRACENPOCHE

PR OC E D U RE S D E B A S E

Table des matières A. Introduction... 4 B. Principes généraux... 5 C. Exemple de formule (à réaliser) :... 7 D. Exercice pour réaliser une facture

Nom : Groupe : Date : 1. Quels sont les deux types de dessins les plus utilisés en technologie?

Comment mettre en page votre livre

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

TUTORIEL IMPRESS. Ouvrir Impress cocher «présentation vierge», «suivant» cocher «écran», «suivant» cocher «standard», «créer»

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

2013 Pearson France Adobe Illustrator CC Adobe Press

HTML. Notions générales

Jean Dubuffet AUTOPORTRAIT II

PHOTOSHOP - L'AFFICHAGE

Les fichiers. Chapitre 4

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

Conventions d écriture et outils de mise au point

Cours Langage C/C++ Programmation modulaire

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur.

1. Introduction Création d'une requête...2

Derrière toi Une machine virtuelle!

INITIATION A LA PROGRAMMATION

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Transcription:

4 Le graphisme (2 nde partie) 4.1 Valeur de retour de la fonction main () La fonction main peut être déclarée avec une valeur de retour : ou sans: void main () Le choix entre ces deux façons réside dans l utilisation de votre programme :. le fait de renvoyer une valeur (un code erreur) permet lors de l exécution de votre programme par un autre programme de savoir si tout s est bien passé.. le fait de ne pas renvoyer de code erreur rend impossible le fait de savoir si le programme s est bien terminé (sauf de manière visuelle (en l exécutant)). On utilisera généralement void main () pour des programmes de test et pour des vrais programmes. 4.2 Motif de remplissage et contour Dans tous les exemples qui suivront, j'utiliserai la fonction Initialize () écrite dans le précédent cours. 4.2.1 Exemple Tapez cet exemple et en vous appuyant sur l aide en ligne, comprenez l utilisation des fonctions graphiques setlinestyle, setfillstyle, fillellipse. #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<dos.h> #include<graphics.h> clrscr(); /* Ouverture du mode graphique */ if (Initialize ()) /* Définit la couleur de tracé des traits */ setcolor (15); /* Définit l'épaisseur et le style courants des lignes */ setlinestyle (DOTTED_LINE, 0, NORM_WIDTH); /* Définit le motif et la couleur de remplissage */ setfillstyle (SOLID_FILL, 12); /* Dessine une ellipse de rayon x=15 y=15 donc un cercle rayon 15 */ fillellipse (30,30,15,15); /* Attend l'appui d'une touche : permet de voir ce que l'on fait */ M. Berthomier Eric Page 1/10 06/09/00

/* Termine le mode graphique */ closegraph(); 4.2.2 Exercices d'application! Changer la couleur du contour! Changer le motif de remplissage.! Changer la couleur du motif de remplissage 4.3 Rectangles et barres 4.3.1 Exemple #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<dos.h> #include<graphics.h> clrscr(); /* Ouverture du mode graphique */ if (Initialize ()) /* Définit la couleur de tracé des traits */ setcolor (13); /* Définit le motif et la couleur de remplissage */ setfillstyle (SOLID_FILL, 11); /* Barre 3D */ bar3d (50,50,200,200,13,1); /* Attend l'appui d'une touche : permet de voir ce que l'on fait */ closegraph(); 4.3.2 Explications void far bar3d (int left, int top, int right, int bottom, int depth, int topflag); L'aide de bar3d n'est pas explicite, en voici donc une explication plus complète (extrait du Manuel de Référence) : bar3d dessine une barre rectangulaire en trois dimensions (dans l'espace), et la remplit à l'aide du motif et de la couleur de remplissage courants. Le contour dans l'espace de cette barre est tracé dans le style et avec la couleur de tracé courants. La profondeur de la barre est donnée en pixels par l'argument depth. L'argument topflag sert à M. Berthomier Eric Page 2/10 06/09/00

déterminer si la barre possède une face supérieure. Si topflag est non nul il y a une face supérieure sinon il n'y en a pas (ce qui permet l'empilage de plusieurs barres). Pour la profondeur de la barre, prendre par exemple 25 % de la barre. On reconnaît dans topflag le fameux type vrai faux (vrai si différent de 0, faux sinon). 4.3.3 Exercices d'application " Changer la couleur de trait " Dessiner un rectangle plein 4.4 Texte graphique : oh les belles lettres 4.4.1 Exemple #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<dos.h> #include<graphics.h> clrscr(); /* Ouverture du mode graphique */ if (Initialize ()) /* Définit la couleur du texte */ setcolor (10); /* Définit le style du texte */ settextstyle (TRIPLEX_FONT,VERT_DIR,5); /* Affiche le texte */ outtextxy (30,30,"Raven come back"); /* Attend l'appui d'une touche : permet de voir ce que l'on fait */ /* Ferme le mode graphique */ closegraph(); 4.4.2 Taille du texte Pour connaître la taille des caractères utilisés, nous devons utiliser la fonction : void gettextsettings (struct textsettingstype far* texttypeinfo) ; Aïe, quelque chose que je ne connais pas Le mot de syntaxe struct nécessiterait un cours à lui tout seul. Nous allons donc utiliser une autre méthode pour connaître la taille des caractères. Relisez l aide en ligne associée à settextstyle et plus spécifiquement l aide associée au paramètre charsize. Eh oui, nous avons M. Berthomier Eric Page 3/10 06/09/00

la clé de notre problème de taille de caractères, la taille en pixels des caractères est égal à charsize * 8. Dans l exemple précédent où charsize était de 5 nous avons donc des caractères de 40x40 pixels. 4.4.3 Exercices d'application # Changer le texte # Changer la couleur du texte 4.5 Exercice complet et instructif A l'aide de l'exercice 3.4 du cours n 3, réaliser un menu en mode graphique. Spécifications : 1. Dessiner le menu en mode graphique et en caractères gothiques. 2. Ajoutez un menu texte horizontal qui affiche un texte en horizontal en caractères normaux (DEFAULT_FONT). 3. Ajoutez un menu texte horizontal qui affiche un texte en vertical en caractères normaux (DEFAULT_FONT). M. Berthomier Eric Page 4/10 06/09/00

Correction des exercices du chapitre 4 " Exercice 4.2.2! Changer la couleur du contour! Changer le motif de remplissage.! Changer la couleur du motif de remplissage #include <graphics.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> int Initialize(void) int GraphDriver = DETECT; /* Driver de carte graphique */ int ErrorCode; /* Rapport des codes erreurs */ int GraphMode=0; initgraph( &GraphDriver, &GraphMode, "c:\\tc" ); ErrorCode = graphresult(); /* Lecture du résultat de l'initialisation */ if( ErrorCode!= grok ) printf("erreur de système graphique : %s\n", grapherrormsg(errorcode )); return ( 1 ); /* Problème */ char car = ' '; int couleur = 1; /* On évite le 0 car noir sur fond noir!!!! */ int sortie = 0; if (Initialize ()) /* Ouverture du mode graphique */ printf ("Impossible de passer en mode graphique"); /* Couleur du contour */ setcolor (8); /* Définition du style de ligne */ setlinestyle (4, 0, NORM_WIDTH); /* Définition du type et couleur de remplissage */ setfillstyle (SLASH_FILL, 2); /* Ellipse pleine */ fillellipse (30,30,15,15); /* Attente */ M. Berthomier Eric Page 5/10 06/09/00

closegraph (); /* Fermeture du mode graphique */ return 0; " Exercice 4.3.3 " Changer la couleur de trait " Dessiner un rectangle plein #include <graphics.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> int Initialize(void) int GraphDriver = DETECT; /* Driver de carte graphique */ int ErrorCode; /* Rapport des codes erreurs */ int GraphMode=0; initgraph( &GraphDriver, &GraphMode, "c:\\tc" ); ErrorCode = graphresult(); /* Lecture du r sultat de l'initialisation */ if( ErrorCode!= grok ) printf("erreur de système graphique : %s\n", grapherrormsg(errorcode )); return ( 1 ); /* Problème */ char car = ' '; int couleur = 1; /* On évite le 0 car noir sur fond noir!!!! */ int sortie = 0; if (Initialize ()) /* Ouverture du mode graphique */ printf ("Impossible de passer en mode graphique"); /* Couleur du contour */ setcolor (4); /* D finition du type et couleur de remplissage */ setfillstyle (SLASH_FILL, 4); /* Ellipse pleine */ bar3d (50,50,200,200,0,1); /* Attente */ closegraph (); /* Fermeture du mode graphique */ return 0; M. Berthomier Eric Page 6/10 06/09/00

" Exercice 4.4.3 # Changer le texte # Changer la couleur du texte #include <graphics.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> int Initialize(void) int GraphDriver = DETECT; /* Driver de carte graphique */ int ErrorCode; /* Rapport des codes erreurs */ int GraphMode=0; initgraph( &GraphDriver, &GraphMode, "c:\\tc" ); ErrorCode = graphresult(); /* Lecture du résultat de l'initialisation */ if( ErrorCode!= grok ) printf("erreur de système graphique : %s\n", grapherrormsg(errorcode )); return ( 1 ); /* Problème */ char car = ' '; int couleur = 1; /* On évite le 0 car noir sur fond noir!!!! */ int sortie = 0; if (Initialize ()) /* Ouverture du mode graphique */ printf ("Impossible de passer en mode graphique"); /* Couleur du contour */ setcolor (4); /* Définition du type et couleur de remplissage */ settextstyle (TRIPLEX_FONT, VERT_DIR, 5); /* Affichage du texte */ outtextxy (30,30, "Coucou"); /* Attente */ /* Fermeture du mode graphique */ closegraph (); return 0; M. Berthomier Eric Page 7/10 06/09/00

" Exercice 4.5 Dessiner le menu en mode graphique et en caractères gothiques. Ajoutez un menu texte horizontal qui affiche un texte horizontal en caractères normaux. Ajoutez un menu texte horizontal qui affiche un texte vertical en caractères normaux. #include <graphics.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> int Initialize(void) int GraphDriver = DETECT; /* Driver de carte graphique */ int ErrorCode; /* Rapport des codes erreurs */ int GraphMode=0; initgraph( &GraphDriver, &GraphMode, "c:\\tc" ); ErrorCode = graphresult(); /* Lecture du r sultat de l'initialisation */ if( ErrorCode!= grok ) printf("erreur de système graphique : %s\n", grapherrormsg(errorcode )); return ( 1 ); /* Problème */ char car = ' '; int couleur = 1; /* On évite le 0 car noir sur fond noir!!!! */ int sortie = 0; if (Initialize ()) /* Ouverture du mode graphique */ printf ("Impossible de passer en mode graphique"); /* Choix de la police de caractère */ settextstyle (GOTHIC_FONT, HORIZ_DIR, 3); /* */ do La taille des caractères est maintenant de 3*8 = 24 pixels Afin de laisser de la place pour mon rectangle j' cris donc une ligne tous les 30 pixels et 10 pixels du bord de l' cran /* Affichage du menu */ setcolor (couleur); outtextxy (10,30,"1. Dessiner une ligne."); outtextxy (10,60,"2. Dessiner un rectangle."); outtextxy (10,90,"3. Dessiner un cercle."); outtextxy (10,120,"4. Changer la couleur."); M. Berthomier Eric Page 8/10 06/09/00

outtextxy (10,150,"5. Texte horizontal."); outtextxy (10,180,"6. Texte vertical."); outtextxy (10,250,"9. Sortir."); car = switch (car) case '1': line (100,100,250,370); outtextxy (200,400,"Appuyez sur une touche"); case '2': rectangle (100,200,350,400); outtextxy (200,400,"Appuyez sur une touche"); case '3': circle (150,250,100); outtextxy (200,400,"Appuyez sur une touche"); case '4': couleur ++; if (couleur > 15) couleur = 1; case '5': /* On passe en mode normal */ settextstyle (DEFAULT_FONT, HORIZ_DIR, 1); outtextxy (100,100, "Ceci est un texte"); /* On revient au style gothique */ settextstyle (GOTHIC_FONT, HORIZ_DIR, 3); outtextxy (200,400, "Appuyez sur une touche"); case '6': /* On passe en mode normal */ settextstyle (DEFAULT_FONT, VERT_DIR, 1); outtextxy (100,100, "Ceci est un texte"); /* On revient au style gothique */ settextstyle (GOTHIC_FONT, HORIZ_DIR, 3); outtextxy (200,400, "Appuyez sur une touche"); M. Berthomier Eric Page 9/10 06/09/00

case '9': sortie = 1; while (!sortie); closegraph (); /* Fermeture du mode graphique */ return 0; M. Berthomier Eric Page 10/10 06/09/00