9. *Typographier - write()

Dans ce chapitre, nous allons voir la composition typographique d’un texte dans un contexte graphique. Nous allons découvrir sa taille, sa couleur, sa police et son alignement. Nous allons voir que :

  • la fonction write() écrit un texte à la position de la tortue,

  • l’option font=(police, taille, style) permet de choisir son style,

  • l’option align='center' permet de choisir son alignement.

Question

La fonction write() écrit un texte dans le canvas de la tortue. Avec des options nous pouvons changer




9.1. La fonction write()

La fonction write() permet d’afficher un texte à la position de la tortue.

Exercice 1

Déplacez la tortue quelque part et ajoutez un deuxième bout de texte.

9.2. Taille

La fonction write() possède un paramètre optionnel font pour indiquer la police, la taille et le style. La valeur par défaut est ('Arial', 8, 'normal')

Exercice 2

Déplacez la tortue est essayez une taille encore plus grande.

En utilisant une variable taille nous pouvons aussi parcourir un tuple de nombres. À l’intérieur de la boucle, nous utilisons cette variable taille trois fois :

  • pour calculer la distance entre les lignes, dans backward(1.5  * taille)

  • pour l’afficher, dans write(taille)

  • pour choisir la taille, dans l’option font=(... taille)

Exercice 3

Affichez encore la taille 80.

9.3. Police

En typographie, une police d’écriture est un ensemble de signes graphiques (caractères) dont le style est coordonné, afin de former un alphabet. Voici quelques polices notoires :

  • Arial - utilisé sur l’écran

  • Times - utilisé dans des livres, journaux

  • Courier - police mono-espace, utilisée pour du code

  • Didot - police ancienne et élégante

  • Zapfino - police manuscrite

Exercice 4

Ajoutez la police Didot qui est une police élégante, et la police Zapfino qui est une police manuscrite.

En utilisant une variable police nous pouvons aussi parcourir un tuple de chaînes de caractères qui représentent des polices. À l’intérieur de la boucle, nous utilisons cette variable police deux fois :

  • pour l’afficher, dans write(police)

  • pour choisir la police, dans l’option font=(police, ...)

9.4. Style

Le troisième argument présente le style de la police :

  • gras (bold)

  • cursif (italic)

  • gras et cursif (bold italic)

Exercice 5

Ajoutez un quatrième texte avec le style gras et cursif.

En utilisant une variable style nous pouvons aussi parcourir un tuple de chaînes de caractères qui représentent les 4 styles possibles. À l’intérieur de la boucle, nous utilisons cette variable style deux fois :

  • pour l’afficher (dans write())

  • pour choisir le style (dans l’option font=())

9.5. Alignement

Le paramètre optionnel align permet de choisir parmi 3 types d’alignements :

  • gauche ('left')

  • centre ('center')

  • droite ('right')

Exercice 6

Écrivez 3-4 lignes de texte en forme de poème qui sont centrées.

9.6. Texte en escalier

Le paramètre optionnel move permet de choisir si la tortue se déplace à la fin du texte. Par défaut ce paramètre est False. Ce programme place chaque mot en escalier.

Exercice 7

Que se passe-t-il si vous mettez move=False ?

9.7. Texte en couleur

Exercice 8

Écrivez les lignes sur la même ligne, en utilisant l’option move=True.

Prudence

Si vous exécutez write() dans ce site avec Skulpt, la couleur du texte est définie par fillcolor(). Quand vous exécutez write() dans un éditeur externe avec Python standard, la couleur du texte est définie par pencolor().

9.8. Texte aligné

Le texte suivant est une phrase célèbre de Star Wars. Les mots sont alignés une fois à gauche, une fois au centre et une fois à droite.

9.9. Sudoku

Le sudoku est un jeu en forme de grille 9x9. Le but du jeu est de remplir la grille avec une série de chiffres, tous différents, qui ne se trouvent jamais plus d’une fois sur une même ligne, dans une même colonne ou dans une même région 3x3, appelé bloc.

9.10. WhatsApp

L’application WhatsApp fournit un système de messagerie instantanée chiffrée de bout en bout aussi bien via les réseaux de téléphonie mobile que par Internet.

WhatsApp a remporté un grand succès au tournant des années 2010. L’application est créée en 2009 par Jan Koum et Brian Acton, deux anciens employés de la société américaine Yahoo! avec pour objectif de remplacer le SMS. Elle est utilisée par plus de deux milliards de personnes en 2020.

En 2014, WhatsApp est acquis par Facebook pour un montant d’environ 22 milliards soit environ 350 millions de dollars par employé ou 40 dollars par utilisateur.

Dans le programme ci-dessous nous allons afficher une conversation entre deux personnes dans le style d’une application de messagerie. Nous utilisons la fonction goto() pour placer la tortue à une position (x, y) et la fonction setx() placer la tortue vers la marge gauche (-280) ou droite (280).

9.11. Exercice

Sudoku

Reproduisez l’image ci-dessous

../_images/sudoku.png

WhatsApp

Créez une conversation WhatsApp fictive. D’abord en mode claire, ensuite en mode sombre (dark mode).

Scrabble

Affichez deux mots qui ont une lettre en commun. Un mot à l’horizontale, le deuxième mot à la verticale.

Nuage de mots-clés

Le nuage de mots-clés, ou nuage de tags (en anglais tag cloud) est une représentation visuelle des mots-clés (tags) très souvent utilisée en web. Généralement, les mots s’affichent dans des tailles et graisses de caractères d’autant plus visibles qu’ils sont utilisés ou populaires.

Choisissez 10 mots et affichez-les avec 10 tailles différentes. La taille la plus grande doit apparaitre au milieu. Les mots ne doivent pas se superposer. Utilisez des tuples avec 10 mots, 10 tailles et 10 positions.

TP

Créez une image libre avec un nuage de mots et un poème. Pour exporter l’image en EPS vous devez enlever les commentaires dans les 3 lignes suivants:

# from tkinter import *
# Screen().setup(width=w+40, height=h+40)
# Screen().getcanvas().postscript(file='tp.eps')