Cours:Idees OOP : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m (Voir aussi)
m (Voir aussi)
Ligne 79 : Ligne 79 :
 
* [https://github.com/shiffman/LearningProcessing GitHub : Les exemples du livre complet de Daniel Shiffman]
 
* [https://github.com/shiffman/LearningProcessing GitHub : Les exemples du livre complet de Daniel Shiffman]
 
* [https://www.ljll.math.upmc.fr/hecht/ftp/InfoSci/s12/coursJava.pdf PDF:Cours Java]
 
* [https://www.ljll.math.upmc.fr/hecht/ftp/InfoSci/s12/coursJava.pdf PDF:Cours Java]
* [http://www.olivierevrard.be/wp-content/uploads/2010/11/didacticiel-Processing_complet_pour_ES.pdf PDF Processing]
+
* [http://www.olivierevrard.be/wp-content/uploads/2010/11/didacticiel-Processing_complet_pour_ES.pdf PDF: Processing - Olivier Evrard]

Version du 12 février 2019 à 18:32

Introduction aux objets avec Processing

Programmation orientée-objet (version sympathique) peut être lue en guise de cours.

Exercice 1

Refaire les exemples développés dans la Playlist Youtube de Daniel Shiffman. On commencera par la classe Bubble développée dans le troisième cours.

Préparation à l'exercice suivant

Processing : Les Objets peut être consulté pour un rappel sur les objets. Nous allons continuer avec les tableaux ou listes.

Les listes (ou tableaux) vous propose des tableaux sur types simples (ou presque).

Pour aller plus loin, les listes d'objets sont abordées avec « Programmation orientée-objet (version sympathique) » en y cherchant la section Liste d'objets.

Exercice 2

1°) Transformer le code ci-dessous en une classe Processing pour utilisation.

2°) Réaliser un affichage de 4 digits destiné à afficher l'heure et les minutes d'un réveil.

3°) Modifier la classe pour pouvoir changer la taille de chaque digit

4°) Réaliser une classe Heure 2x2 digits séparés par deux points

5°) Utiliser cette classe pour afficher l'heure courante. On utilisera

Le code d'une horloge à aiguilles est diponible sur Internet.

Indications : on vous donne le code permettant un affichage d'un seul digit

int[] val={63,6,91,79,102,109,125,7,127,111,119,124,57,94,121,113};

void segment() {
  beginShape();
  vertex(0,10);
  vertex(10,0);
  vertex(50,0);
  vertex(60,10);
  vertex(50,20);
  vertex(10,20);
 endShape(CLOSE); 
}

void Affiche7segs(int val,int rouge,int vert, int bleu) {
  pushMatrix(); // on désire laisser le repère inchangé
  noStroke();
  translate(40,0);
  if ((val & 1) == 1) fill(rouge,vert,bleu); else fill(200);
  segment(); // segment a
  translate(-10,70);
  if ((val & 64) == 64) fill(rouge,vert,bleu); else fill(200);
  segment(); // segment g
  translate(-10,70);
  if ((val & 8) == 8) fill(rouge,vert,bleu); else fill(200);
  segment(); // segment d
  translate(15,-53);
  rotate(radians(100));
  if ((val & 16) == 16) fill(rouge,vert,bleu); else fill(200);
  segment(); // segment e
  translate(-70,0);
  if ((val & 32) == 32) fill(rouge,vert,bleu); else fill(200);
  segment(); // segtment f
  translate(-12,-68);
  if ((val & 2) == 2) fill(rouge,vert,bleu); else fill(200);
  segment(); // segment b
  translate(72,0);
  if ((val & 4) == 4) fill(rouge,vert,bleu); else fill(200);
  segment(); // segment c
  popMatrix(); // on récupère le repère initial
}

Voir aussi