« Projet tango » : différence entre les versions
Aller à la navigation
Aller à la recherche
Ligne 47 : | Ligne 47 : | ||
txt[] mots = new txt[0]; | txt[] mots = new txt[0]; | ||
String[] dico = {"tango","salsa","electro"}; | String[] dico = {"tango","salsa","electro"}; | ||
PFont myFont = createFont("Monospaced.italic", 30); | |||
PFont myFont = createFont( | |||
void setup() | void setup() | ||
Ligne 58 : | Ligne 55 : | ||
colorMode(RGB, 1.0); | colorMode(RGB, 1.0); | ||
noStroke(); | noStroke(); | ||
textFont(myFont); | |||
fill(#FF0000); | |||
} | } | ||
Ligne 67 : | Ligne 68 : | ||
} | } | ||
// tracer tous les mots du tableau mots | // tracer tous les mots du tableau mots | ||
// il y a un problème à l'exécution, outofmemory après une quinzaine d'objets créés | |||
for (int a=0;a<mots.length;a++) { | for (int a=0;a<mots.length;a++) { | ||
mots[a].ecrire(); | mots[a].ecrire(); | ||
Ligne 74 : | Ligne 76 : | ||
// la classe txt, avec son constructeur txt() qui choisit un mot aléatoirement dans dico | // la classe txt, avec son constructeur txt() qui choisit un mot aléatoirement dans dico | ||
// et une methode ecrire() qui place ce mot à la position de la souris: | // et une methode ecrire() qui place ce mot à la position de la souris: | ||
class txt { | class txt { | ||
int x=mouseX; int y=mouseY; | int x=mouseX; int y=mouseY; | ||
int i = int(random(dico.length)); | int i = int(random(dico.length)); | ||
void ecrire() { | void ecrire() { | ||
text(dico[i],x,y); | |||
text( | |||
} | } | ||
} | } |
Version du 1 mars 2010 à 21:36
Voici une page où mettre les sketches processing sur lesquels nous travaillons:
Cercles par Andreas
ArrayList lastValues = new ArrayList(); int nbCircles = 40; int diameterIncrement = 20; void setup() { size(400, 400); smooth(); noStroke(); //framerate(60); while(lastValues.size()<nbCircles*2){ lastValues.add(new int[]{0,0}); } } void draw() { background(0); lastValues.remove(0); lastValues.add(new int[]{mouseX,mouseY}); drawCirles(nbCircles, lastValues, diameterIncrement); } void drawCirles(int nb,java.util.List lastValues,int diameterIncrement){ int firstValue = lastValues.size() -1 - (nb-1) * 2; int largestDiameter = 40 + diameterIncrement *nb; for(int i = 0; i<nb; i++){ int fillColor = (i%2==0) ? 255 : 0; fill(fillColor, fillColor, fillColor); int [] xy = (int[])lastValues.get(firstValue + i*2); int diameter = largestDiameter - diameterIncrement * i; ellipse(xy[0], xy[1], diameter, diameter); } }
Mots_objet, par Ambroise
Ce script n'est pas encore propre. Il s'agit de créer une class d'objets txt, avec un constructeur txt() et une méthode, ecrire(). Ça ne fonctionne pas encore correctement, mais c'est une esquisse pour traiter les mots qui sont tracés sur le fond comme des objets à part entière, qui peuvent donc avoir des comportements variés, indépendamment les uns des autres. Merci de faire vos corrections.
// initialisation du tableau mots contenant des objets de type txt txt[] mots = new txt[0]; String[] dico = {"tango","salsa","electro"}; PFont myFont = createFont("Monospaced.italic", 30); void setup() { size(400, 400); background(0.0); colorMode(RGB, 1.0); noStroke(); textFont(myFont); fill(#FF0000); } void draw() { // creer un nouveau mot chaque 1.5 secondes if (frameCount % 90 == 0) { mots = (txt[]) append(mots, new txt()); } // tracer tous les mots du tableau mots // il y a un problème à l'exécution, outofmemory après une quinzaine d'objets créés for (int a=0;a<mots.length;a++) { mots[a].ecrire(); } } // la classe txt, avec son constructeur txt() qui choisit un mot aléatoirement dans dico // et une methode ecrire() qui place ce mot à la position de la souris: class txt { int x=mouseX; int y=mouseY; int i = int(random(dico.length)); void ecrire() { text(dico[i],x,y); } }