1.2 - Fonctionnalités graphiques

Ce tutoriel va illustrer les capacités artistiques d'Algoid.
Tu vas être capable de dessiner des oeuvres avec des couleurs, des tailles de traits, des formes et des textes.
Amuse-toi bien !

synopsis

  1. prérequis
  2. notions de base
  3. montrer / cacher
  4. couleurs
  5. visibilité de la tortue
  6. taille du trait
  7. plus de formes
  8. à toi de jouer
  9. sommaire

  10. << retour aux tu(r)toriaux

prérequis

Avant de lire ce tutoriel, il est important d'avoir lu : 1.1 - Qu'est ce qu'un programme ?

notions de base

Qu'est-ce qu'une bibliothèque ?
Tous les langages de programmation sont divisés en deux parties principales :

  • les primitives, qui seront expliquées dans les prochains tutoriels ;
  • les bibliothèques.

Les bibliothèques (ou API) sont un ensemble d'outils utilisés pour exécuter des travaux plus complexes.
Dans le cas d'AL, tous ces outils sont contenus dans des fonctions qui sont elles-mêmes contenues dans des objets.
AL possède plusieurs objets comme Math (pour exécuter des calculs arithmétiques), Util, UI… et Algo.
L'objet Algo contient tout ce dont nous avons besoin pour dessiner avec la tortue et bien plus encore.

montrer / cacher

Dans le tutoriel 1.1, nous avons vu ensemble comment avancer en dessinant une ligne avec l'instruction algo.go.
Il est possible d'aller dans la même direction sans dessiner quoi que ce soit avec l'instruction algo.jump.
Observons ce que le code suivant fait :

 
Algo jump: 
  • 1
  • 2
  • 3
algo.go (70);
algo.jump (70);
algo.go (70);

couleurs

L'objet Algo fournit deux propriétés pour changer la couleur.
La couleur du prochain trait avec algo.setColor.
La couleur du fond avec la propriété algo.setBgColor.
Les propriétés de couleur utilisent toutes deux la même table de nombres dont chaque nombre correspond à une couleur:

couleur valeur couleur valeur
transp.-1   
noir0 gris sombre8
bleue sombre1 bleue9
vert sombre2 vert10
cyan sombre3 cyan11
rouge sombre4 rouge12
violet sombre5 violet13
marron6 jaune14
gris clair7 blanc15


Un exemple de manipulation de couleurs :

 
Algo colors: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
algo.setBgColor (11); // cyan foncé
algo.setColor(3); // cyan
// our square
algo.go (100);
algo.turnRight (90);
algo.go (100);
algo.turnRight (90);
algo.go (100);
algo.turnRight (90);
algo.go (100);
algo.turnRight (90);

visibilité de la tortue

Il est possible de cacher et de montrer la tortue en utilisant : algo.hide et algo.show.

taille du trait

Pour changer la taille du futur trait à dessiner, utilisons la propriété algo.setStroke.
Les nombres supérieurs à 1 seront plus épais que la taille par défaut.
Les nombres inférieurs à 1 (par exemple 0.2, 0.5) seront plus fins.

 
Taille des traits Algo : 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
algo.setStroke (0.2); // fin
algo.go (25);
algo.setStroke (1); // épais
algo.go (25);
algo.setStroke (2); // plus épais
algo.go (25);
algo.setStroke (3); // ....
algo.go (25);
algo.setStroke (4); // ....
algo.go (25);
algo.setStroke (5); // ....
algo.go (25);
algo.hide ();

plus de formes

cercle

Dessinons un cercle avec un diamètre particulier.

 
forme: 
  • 1
algo.circle (200);

disc

Le même cercle, mais plein, cette fois-ci.

 
forme: 
  • 1
algo.disc (200);

ovale

Dessinons un ovale avec les diamètres x et y particuliers.

 
forme: 
  • 1
algo.oval (400, 200);

platter

Le même ovale, mais plein, cette fois-ci.

 
forme: 
  • 1
algo.platter (400, 200);

rectangle

Dessinons un rectangle avec les dimensions hauteur et largeur.

 
forme: 
  • 1
algo.rect (400, 200);

surface plane

Le même que rectangle, mais plein.

 
forme: 
  • 1
algo.plane (400, 200);

text

Dessinons une ligne de texte.

 
forme: 
  • 1
  • 2
algo.text ("hello algoid !");
algo.jump (-100);

à toi de jouer

ex1: modifie notre carré

En modifiant le code source suivant (notre carré), essayons d'obtenir le dessin suivant :

 
Ex1: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
// left
algo.go (100);
algo.turnRight (90);
// top
algo.go (100);
algo.turnRight (90);
// right
algo.go (100);
algo.turnRight (90);
// bottom
algo.go (100);
algo.turnRight (90);
 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
// left
algo.go (100);
algo.turnRight (90);
// top
algo.jump (100); // modify here
algo.turnRight (90);
// right
algo.go (100);
algo.turnRight (90);
// bottom
algo.jump (100); // and here and thats all
algo.turnRight (90);

ex2: cible

Essayons de dessiner la figure suivante :/p>

 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
algo.disc (400);
algo.setColor (0); // dark
algo.disc (300);
algo.setColor (7); // light
algo.disc (200);
algo.setColor (0); // dark
algo.disc (100);

Essayons avec l'ovale :

 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
algo.platter (400, 300);
algo.setColor (0); // dark
algo.platter (300, 200);
algo.setColor (7); // light
algo.platter (200, 100);

Et le rectangle :

 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
algo.plane (400, 300);
algo.setColor (0); // dark
algo.plane (300, 200);
algo.setColor (7); // light
algo.plane (200, 100);

ex3: cercles

Essayons de dessiner la figure suivante :

 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
algo.circle (100);
algo.jump (50);
algo.circle (200);
algo.jump (100);
algo.circle (400);
algo.jump (200);
algo.circle (800);
algo.jump (400);
algo.circle (1600);
 

ex4: définition d'un triangle

Avec un script, dessinons la figure suivante :
Indice : Pour faire un tour complet, la tortue doit tourner de 360°. Il faut donc tourner de 360 / 3 = 120° pour chaque segment de droite.

 
Solution: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
// initialize turtle s position
algo.turnLeft (90);
// the begin of the bottom side
algo.go (50);
algo.circle (200);
algo.turnRight (120); // 360 / 3
// side 2
algo.go (100);
algo.circle (200);
algo.turnRight (120);
// side 3
algo.go (100);
algo.circle (200);
algo.turnRight (120);
// finnish the bottom side
algo.go (50);
algo.hide ();


sommaire

connaissances

Dans ce tutoriel, vous avez appris :

  • Qu'est-ce qu'une bibliothèque (une API) ?
  • Les fonctions principales d'Algoid ;
  • Comment faire quelques dessins amusants.

fonctions utilisées :

FonctionDéscription