Types construits

Tuples

Le but de cette partie est de construire un dégradé de couleurs rouges, c'est à dire un ensemble de couleurs rouges allant du rouge foncé à un rouge plus clair.

Pour avoir une idée de comment s'y prendre nous allons utiliser le logiciel GIMP

  1. Ouvrir GIMP et cliquer sur la modification de la couleur du premier plan
  2. Régler R à 255,G à 0 et B à 0 à l'aide des curseurs ce qui donne le rouge primaire

  3. Il existe une autre façon de coder la couleur plus proche de la perception humaine des couleurs

    Voir ici un article de Wikipédia

    Cette fois ci on attribue trois nombres T (ou H en anglais pour Hue), S et V

    • T pour teinte un entier entre 0 et 360 degrés.(c'est le cercle des couleurs, ainsi 0 ou 360 correspond au rouge primaire)
    • S pour saturation entre 0 et 100
    • V pour valeur entre 0 et 100

    Pour bien comprendre la différence entre S et V diminuer la saturation de 10 en 10 et observer comment évoluent G et B et comment évolue la couleur actuelle

    Remettre R à 255, G à 0 et B à 0 puis diminuer cette fois ci V de 10 en 10. Comment évoluent G et B et comment évolue la couleur actuelle ?

    A partir de maintenant vous devez savoir comment réaliser un dégradé

  4. Pour la réalisation concrète du dégradé on utilisera le module de tkinter dans la section suivante mais avant cela on va vérifier les formules de conversion du codage TSV vers RGB

    Lire le passage de l'article Wikipédia et faire quelque cas particuliers pour bien le comprendre

    Implémenter une fonction en Python tsvToRGB(t,s,v) et qui retourne le tuple (r,g,b)

    Retrouve-t-on la correspondance entre les valeurs de l'image ci-dessus ?(GIMP)

Tableaux 1D

  1. Faire une fonction Python qui retourne un tableau 1D des 10 couleurs codées en RGB de (255,0,0) jusqu'à (255,90,90)
  2. Modifier la fonction de telle sorte que le tableau soit construit en compréhension
  3. Faire une fonction Python qui retourne un tableau 1D des 10 couleurs codées en TSV de (0,100,100) jusqu'à (0,10,100) où on diminue la saturation de 10 à chaque fois
  4. Modifier cette fonction de telle sorte que le tableau soit composé des tuples RGB correspondants des tuples TSV précédents
  5. Utiliser le programme python suivant pour visualiser les deux séries de valeurs RGB
  6. Lequel des deux dégradés vous paraît-il plus joli ? Pourquoi ?

Tableaux 2D

A partir de l'image de Lena que vous pouvez télécharger ici on va construire d'autres images avec le module PIL de Python

Compléter le programme suivant

  1. Construire une image en nuances de gris correspondante à l'intensité de Rouge
  2. Construire une image en nuances de gris correspondante à l'intensité de Vert
  3. Construire une image en nuances de gris correspondante à l'intensité de Bleu

    Laquelle de ces trois images vous paraît la plus nette ?

  4. Construire l'image en nuances de gris (deux méthodes et comparer)
  5. Construire le négatif de l'image (si x est une des valeurs de r, g ou b remplacer par 255 - x)

Dictionnaires

Il s'agit de construire une liste Eleve(id,nom,prenom,datedeNaissance,classe,specialite) à partir d'un fichier .csv et de faire quelques opérations sur cette liste.

Un élève de seconde n'a pas de spécialité, un élève de première a trois spécialités représenté par un tuple de chaine de caractères par exemple (M,P,I) pour maths physique et info, et enfin un élève de Terminale a deux spécialités

id est un entier (clé) et Etudiant[id] est de type dictionnaire et le nom de l'étudiant est obtenu par Etudiant[id]['nom']

  1. Télécharger le fichier eleves.csv et le squelette du programme Python eleves.py à compléter
  2. Compléter la fonction creeliste()
  3. En parcourant le dictionnaire compter le nombre d'élèves de Première
  4. En parcourant le dictionnaire compter le nombre d'élèves de Première faisant la spécialité Info
  5. Faire afficher ces élèves en utilisant la fonction enumerate et la méthode items()