Cours:Idees OOP : Différence entre versions
m (→Exercice 1) |
m (→Préparation à l'exercice suivant) |
||
Ligne 6 : | Ligne 6 : | ||
===Préparation à l'exercice suivant=== | ===Préparation à l'exercice suivant=== | ||
[https://fr.flossmanuals.net/processing/les-objets/ Processing : Les Objets] peut être consulté pour un rappel sur les objets. | [https://fr.flossmanuals.net/processing/les-objets/ Processing : Les Objets] peut être consulté pour un rappel sur les objets. | ||
+ | |||
+ | [http://www.ecole-art-aix.fr/processing-13-Listes Les listes (ou tableaux)] | ||
+ | |||
+ | Les listes d'objets peuvent être abordées avec [http://www.ecole-art-aix.fr/processing-14-0-Programmation « Programmation orientée-objet (version sympathique) »] en y cherchant la section '''Liste d'objets'''. | ||
===Exercice 2=== | ===Exercice 2=== |
Version du 12 février 2019 à 17:41
Sommaire
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.
Les listes d'objets peuvent être 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
}