Différences entre les versions de « Le75::Image numérique BAC2 »
Aller à la navigation
Aller à la recherche
(13 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 148 : | Ligne 148 : | ||
*/ | */ | ||
}</source> | }</source> | ||
+ | |||
+ | ===Cours du 22 février 2016=== | ||
+ | <source lang="java"> | ||
+ | |||
+ | float posX; | ||
+ | float posY; | ||
+ | |||
+ | void setup(){ | ||
+ | size(600, 600); | ||
+ | background(255, 255, 0); | ||
+ | |||
+ | } | ||
+ | |||
+ | void draw(){ | ||
+ | |||
+ | background(255, 255, 0); | ||
+ | posX = 10; | ||
+ | posY = 10; | ||
+ | |||
+ | |||
+ | while(posX < 600){ | ||
+ | |||
+ | line(posX, 0, posX, 600); | ||
+ | |||
+ | posX = posX + mouseX + 10; | ||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | while(posY < 600){ | ||
+ | line(0, posY, 600, posY); | ||
+ | posY = posY + 10; | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Énoncé pour la prochaine fois | ||
+ | <source lang="java"> | ||
+ | //réaliser une mosaïque de carrés rouges et bleus. | ||
+ | //chaque carré doit avoir une longueur de côté qui passe de 10 à 50, puis de 50 à 10 | ||
+ | //ce mouvement doit être infini (les carrés bougent tout seul) | ||
+ | </source> | ||
+ | |||
+ | ===Cours du 2 mars 2016=== | ||
+ | <source lang="java"> | ||
+ | int indice; | ||
+ | int indiceY; | ||
+ | |||
+ | int couleur; | ||
+ | |||
+ | int cote; | ||
+ | |||
+ | int vitesse; | ||
+ | |||
+ | void setup(){ | ||
+ | size(600, 600); | ||
+ | cote = 50; | ||
+ | vitesse = - 1; | ||
+ | } | ||
+ | |||
+ | void draw(){ | ||
+ | |||
+ | if(cote <= 10){ | ||
+ | vitesse = 1; | ||
+ | } | ||
+ | if(cote >= 50){ | ||
+ | vitesse = -1; | ||
+ | } | ||
+ | |||
+ | cote = cote + vitesse; | ||
+ | |||
+ | |||
+ | indiceY = 0; | ||
+ | while(indiceY <= 12){ | ||
+ | indice = 0; | ||
+ | if(indiceY % 2 == 0){ | ||
+ | couleur = 0; | ||
+ | }else{ | ||
+ | couleur = 1; | ||
+ | } | ||
+ | while(indice <= 12){ | ||
+ | //print(indiceY); | ||
+ | |||
+ | if(couleur == 0){ | ||
+ | fill(255, 0, 0); | ||
+ | }else{ | ||
+ | fill(0, 0, 255); | ||
+ | } | ||
+ | |||
+ | rect(indice * 50, indiceY * 50, cote, cote); | ||
+ | |||
+ | if(couleur == 0){ | ||
+ | couleur = 1; | ||
+ | }else{ | ||
+ | couleur = 0; | ||
+ | } | ||
+ | |||
+ | //line(indice * 10 , 0, indice * 10, 600); | ||
+ | indice = indice + 1; | ||
+ | } | ||
+ | indiceY = indiceY + 1; | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | } | ||
+ | </source> | ||
+ | <source lang="java"> | ||
+ | //une forme se déplace dans la fenêtre. A chaque fois que le volume capté | ||
+ | //dépasse un seuil, cette forme change de direction | ||
+ | |||
+ | import processing.sound.*; | ||
+ | |||
+ | AudioIn entree; | ||
+ | Amplitude volume; | ||
+ | |||
+ | float posX; | ||
+ | float posY; | ||
+ | |||
+ | float vitesseX; | ||
+ | float vitesseY; | ||
+ | |||
+ | void setup(){ | ||
+ | size(600, 600); | ||
+ | posX = 300; | ||
+ | posY = 300; | ||
+ | |||
+ | vitesseX = 0.5; | ||
+ | vitesseY = 0.5; | ||
+ | fill(255, 0, 0); | ||
+ | |||
+ | entree = new AudioIn(this, 0); | ||
+ | volume = new Amplitude(this); | ||
+ | |||
+ | entree.start(); | ||
+ | volume.input(entree); | ||
+ | } | ||
+ | |||
+ | void draw(){ | ||
+ | background(255); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ellipse(posX, posY, 100, 100); | ||
+ | |||
+ | if(volume.analyze() > 0.05){ | ||
+ | vitesseX = random(-5, 5); | ||
+ | vitesseY = random(-5, 5); | ||
+ | } | ||
+ | |||
+ | if(posX > 550 && vitesseX > 0){ | ||
+ | vitesseX = -vitesseX; | ||
+ | }else if(posX < 50 && vitesseX < 0){ | ||
+ | vitesseX = -vitesseX; | ||
+ | } | ||
+ | if(posY > 550 && vitesseY > 0){ | ||
+ | vitesseY = -vitesseY; | ||
+ | }else if(posY < 50 && vitesseY < 0){ | ||
+ | vitesseY = -vitesseY; | ||
+ | } | ||
+ | |||
+ | posX = posX + vitesseX; | ||
+ | posY = posY + vitesseY; | ||
+ | |||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | </source> | ||
+ | |||
+ | <source lang="java"> | ||
+ | //Énoncé pour la prochaine fois | ||
+ | //dessiner 200 carrés imbriqués les uns dans les autres, les carrés pairs ont une couleur différente des carrés impairs et lorsque l'on clique sur la fenêtre les couleurs s'inversent | ||
+ | </source> | ||
+ | |||
+ | ===Cours du 7 mars 2016=== | ||
+ | <source lang="java"> | ||
+ | |||
+ | float position; | ||
+ | float cote; | ||
+ | |||
+ | int click; | ||
+ | |||
+ | void setup(){ | ||
+ | size(600,600); | ||
+ | noStroke(); | ||
+ | click = 0; | ||
+ | } | ||
+ | |||
+ | void draw(){ | ||
+ | position=0; | ||
+ | cote=600; | ||
+ | |||
+ | while(position<300){ | ||
+ | if(cote%2==0 && click == 0){ | ||
+ | |||
+ | fill(255,0,0); | ||
+ | }else if(cote%2==0 && click == 1){ | ||
+ | fill(0,0,255); | ||
+ | |||
+ | }else if(cote%2==1 && click == 0){ | ||
+ | fill(0,0,255); | ||
+ | }else{ | ||
+ | fill(255,0,0); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | rect(position,position,cote,cote); | ||
+ | position=position+1.5; | ||
+ | cote=cote-3; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void mousePressed(){ | ||
+ | if(click == 0){ | ||
+ | click = 1; | ||
+ | }else{ | ||
+ | click = 0; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | <source lang="java"> | ||
+ | import processing.sound.*; | ||
+ | |||
+ | AudioIn entree; | ||
+ | Amplitude volume; | ||
+ | |||
+ | void setup(){ | ||
+ | size(600, 600); | ||
+ | |||
+ | entree = new AudioIn(this, 0); | ||
+ | volume = new Amplitude(this); | ||
+ | |||
+ | entree.start(); | ||
+ | volume.input(entree); | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | void draw(){ | ||
+ | print(volume.analyze()); | ||
+ | if(volume.analyze() > 0.01){ | ||
+ | background(255, 0, 0); | ||
+ | }else{ | ||
+ | background(0, 255, 0); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | ===Cours du 14 mars 2016=== | ||
+ | <source lang="java"> | ||
+ | |||
+ | PImage chaton; | ||
+ | float rotation; | ||
+ | int compteur; | ||
+ | void setup(){ | ||
+ | chaton = loadImage("chaton.png"); | ||
+ | size(600, 600, P3D); | ||
+ | rotation = 0; | ||
+ | } | ||
+ | |||
+ | void draw(){ | ||
+ | compteur = 0; | ||
+ | while(compteur < 1000){ | ||
+ | pushMatrix(); | ||
+ | translate(random(0, 600), random(0,600)); | ||
+ | rotateZ(rotation); | ||
+ | image(chaton, -25, -50, 50, 100); | ||
+ | |||
+ | popMatrix(); | ||
+ | compteur = compteur + 1; | ||
+ | rotation = rotation + 0.1; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
+ | ===Cours du 21 mars 2016=== | ||
+ | [http://dotdotdot.be/sessions/75/20160321/chat_objet.zip code1 (le chat)] | ||
+ | |||
+ | [http://dotdotdot.be/sessions/75/20160321/chats_objets.zip code2 (les chats)] | ||
+ | |||
+ | ===Cours du 18 avril 2016=== | ||
+ | <source lang="java"> | ||
+ | |||
+ | import ddf.minim.*; | ||
+ | import ddf.minim.analysis.*; | ||
+ | |||
+ | Minim minim; | ||
+ | AudioInput in; | ||
+ | FFT fftIn; | ||
+ | |||
+ | float posX; | ||
+ | float posY; | ||
+ | |||
+ | void setup(){ | ||
+ | size(600, 600); | ||
+ | |||
+ | posX = 300; | ||
+ | posY = 300; | ||
+ | minim = new Minim(this); | ||
+ | |||
+ | in = minim.getLineIn(); | ||
+ | |||
+ | fftIn = new FFT(in.bufferSize(), in.sampleRate()); | ||
+ | |||
+ | |||
+ | fill(0); | ||
+ | stroke(0); | ||
+ | } | ||
+ | |||
+ | void draw(){ | ||
+ | background(255); | ||
+ | |||
+ | strokeWeight(2); | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | fftIn.forward(in.mix); | ||
+ | |||
+ | |||
+ | int nbreBandes = fftIn.specSize(); | ||
+ | |||
+ | int indice = 0; | ||
+ | float valeur = 0; | ||
+ | |||
+ | int maxFrequence = 0; | ||
+ | |||
+ | while(indice < nbreBandes){ | ||
+ | if(fftIn.getBand(indice) > valeur){ | ||
+ | valeur = fftIn.getBand(indice); | ||
+ | maxFrequence = indice; | ||
+ | } | ||
+ | indice = indice + 1; | ||
+ | } | ||
+ | |||
+ | |||
+ | if(maxFrequence > 0){ | ||
+ | |||
+ | float deplacementX = map(maxFrequence, 0, 60, -5, 5); | ||
+ | |||
+ | float deplacementY = map(maxFrequence, 0, 60, -5, 5); | ||
+ | |||
+ | line(posX, posY, posX + deplacementX, posY + deplacementY); | ||
+ | |||
+ | |||
+ | |||
+ | posX = posX + deplacementX; | ||
+ | posY = posY + deplacementY; | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | } | ||
+ | </source> | ||
== Etudiants == | == Etudiants == |
Version actuelle datée du 18 avril 2016 à 09:02
Ce cours est destiné aux étudiants de BAC2 de l'option Images Plurielles Imprimées de l'école Le 75.
Cours
1er Quadri: Numériser
Énoncé
Développer un procédé de numérisation avec un outil choisi puis exploité de manière neuve/détournée/personnelle. Développer un procédé de rendu des données numérisées (choix du traitement des données, choix de la méthode d'impression). Produire 10 images imprimées réalisées via les procédés définis. Format du rendu : libre. Méthode Choisir un outil de numérisation (scanner, appareil photo, capteur, micro, webcam). Chercher des références, techniques, artistiques, sur l'outil choisi. Documenter les découvertes sur l'espace web du cours (dotdotdot.be). Choisir un sujet à capturer avec le processus choisi et réaliser la capture. Stocker les données récupérées. Produire des images avec les données récupérées par la capture. Contraintes techniques Exploitation de l'outil : l'outil doit être détourné/hacké/transformé Exploitation des données : la méthode de production des images doit-être définie comme un système logique. L'interprétation personnelle, l'écriture artistique, doit se placer dans la définition de ce système et non dans son exécution. Tirage 10 exemplaires Remise 15 décembre 2015 Paliers #1 – 8 octobre – outil et documentation (présentation du choix de l'outil, de la documentation et des pistes) #2 – 19 novembre – capture (présentation de la méthode de capture, du sujet choisi, du type de données numérisées via l'outil #3 – 3 décembre – exploitation des données et impression (présentation de prototypes, de maquettes avant le résultat final)
Cours
Cours du 15 février 2016
float posX;
float posY;
float vitesseX;
float vitesseY;
float posXB;
float posYB;
float vitesseXB;
float vitesseYB;
int teinteA;
int teinteB;
int vitesseTeinteA;
int vitesseTeinteB;
void setup(){
size(600, 600);
posX = 50;
posY = 50;
posXB = 550;
posYB = 550;
vitesseX = 1;
vitesseY = 2;
vitesseXB = -1;
vitesseYB = -2;
teinteA = 360;
teinteB = 360;
vitesseTeinteA = -1;
vitesseTeinteB = -1;
background(255);
colorMode(HSB);
noStroke();
}
void draw(){
//background(255);
fill(teinteA, 200, 200);
ellipse(posX, posY, 100, 100);
fill(teinteB, 200, 200);
ellipse(posXB, posYB, 100, 100);
teinteA = teinteA + vitesseTeinteA;
teinteB = teinteB + vitesseTeinteB;
if(teinteA < 0 || teinteA > 360){
vitesseTeinteA = -vitesseTeinteA;
}
if(teinteA < 0 || teinteA > 360){
vitesseTeinteB = -vitesseTeinteB;
}
if(posX > 250 || posX < 50){
vitesseX = -vitesseX;
}
if(posY > 550 || posY < 50){
vitesseY = -vitesseY;
}
if(posXB > 550 || posXB < 350){
vitesseXB = -vitesseXB;
}
if(posYB > 550 || posYB < 50){
vitesseYB = -vitesseYB;
}
posXB = posXB + vitesseXB;
posYB = posYB + vitesseYB;
posX = posX + vitesseX;
posY = posY + vitesseY;
if(mousePressed){
saveFrame();
}
//saveFrame();
}
/*
void mousePressed(){
saveFrame();
}
*/
}
Cours du 22 février 2016
float posX;
float posY;
void setup(){
size(600, 600);
background(255, 255, 0);
}
void draw(){
background(255, 255, 0);
posX = 10;
posY = 10;
while(posX < 600){
line(posX, 0, posX, 600);
posX = posX + mouseX + 10;
}
while(posY < 600){
line(0, posY, 600, posY);
posY = posY + 10;
}
}
Énoncé pour la prochaine fois
//réaliser une mosaïque de carrés rouges et bleus.
//chaque carré doit avoir une longueur de côté qui passe de 10 à 50, puis de 50 à 10
//ce mouvement doit être infini (les carrés bougent tout seul)
Cours du 2 mars 2016
int indice;
int indiceY;
int couleur;
int cote;
int vitesse;
void setup(){
size(600, 600);
cote = 50;
vitesse = - 1;
}
void draw(){
if(cote <= 10){
vitesse = 1;
}
if(cote >= 50){
vitesse = -1;
}
cote = cote + vitesse;
indiceY = 0;
while(indiceY <= 12){
indice = 0;
if(indiceY % 2 == 0){
couleur = 0;
}else{
couleur = 1;
}
while(indice <= 12){
//print(indiceY);
if(couleur == 0){
fill(255, 0, 0);
}else{
fill(0, 0, 255);
}
rect(indice * 50, indiceY * 50, cote, cote);
if(couleur == 0){
couleur = 1;
}else{
couleur = 0;
}
//line(indice * 10 , 0, indice * 10, 600);
indice = indice + 1;
}
indiceY = indiceY + 1;
}
}
//une forme se déplace dans la fenêtre. A chaque fois que le volume capté
//dépasse un seuil, cette forme change de direction
import processing.sound.*;
AudioIn entree;
Amplitude volume;
float posX;
float posY;
float vitesseX;
float vitesseY;
void setup(){
size(600, 600);
posX = 300;
posY = 300;
vitesseX = 0.5;
vitesseY = 0.5;
fill(255, 0, 0);
entree = new AudioIn(this, 0);
volume = new Amplitude(this);
entree.start();
volume.input(entree);
}
void draw(){
background(255);
ellipse(posX, posY, 100, 100);
if(volume.analyze() > 0.05){
vitesseX = random(-5, 5);
vitesseY = random(-5, 5);
}
if(posX > 550 && vitesseX > 0){
vitesseX = -vitesseX;
}else if(posX < 50 && vitesseX < 0){
vitesseX = -vitesseX;
}
if(posY > 550 && vitesseY > 0){
vitesseY = -vitesseY;
}else if(posY < 50 && vitesseY < 0){
vitesseY = -vitesseY;
}
posX = posX + vitesseX;
posY = posY + vitesseY;
}
//Énoncé pour la prochaine fois
//dessiner 200 carrés imbriqués les uns dans les autres, les carrés pairs ont une couleur différente des carrés impairs et lorsque l'on clique sur la fenêtre les couleurs s'inversent
Cours du 7 mars 2016
float position;
float cote;
int click;
void setup(){
size(600,600);
noStroke();
click = 0;
}
void draw(){
position=0;
cote=600;
while(position<300){
if(cote%2==0 && click == 0){
fill(255,0,0);
}else if(cote%2==0 && click == 1){
fill(0,0,255);
}else if(cote%2==1 && click == 0){
fill(0,0,255);
}else{
fill(255,0,0);
}
rect(position,position,cote,cote);
position=position+1.5;
cote=cote-3;
}
}
void mousePressed(){
if(click == 0){
click = 1;
}else{
click = 0;
}
}
import processing.sound.*;
AudioIn entree;
Amplitude volume;
void setup(){
size(600, 600);
entree = new AudioIn(this, 0);
volume = new Amplitude(this);
entree.start();
volume.input(entree);
}
void draw(){
print(volume.analyze());
if(volume.analyze() > 0.01){
background(255, 0, 0);
}else{
background(0, 255, 0);
}
}
Cours du 14 mars 2016
PImage chaton;
float rotation;
int compteur;
void setup(){
chaton = loadImage("chaton.png");
size(600, 600, P3D);
rotation = 0;
}
void draw(){
compteur = 0;
while(compteur < 1000){
pushMatrix();
translate(random(0, 600), random(0,600));
rotateZ(rotation);
image(chaton, -25, -50, 50, 100);
popMatrix();
compteur = compteur + 1;
rotation = rotation + 0.1;
}
}
Cours du 21 mars 2016
Cours du 18 avril 2016
import ddf.minim.*;
import ddf.minim.analysis.*;
Minim minim;
AudioInput in;
FFT fftIn;
float posX;
float posY;
void setup(){
size(600, 600);
posX = 300;
posY = 300;
minim = new Minim(this);
in = minim.getLineIn();
fftIn = new FFT(in.bufferSize(), in.sampleRate());
fill(0);
stroke(0);
}
void draw(){
background(255);
strokeWeight(2);
fftIn.forward(in.mix);
int nbreBandes = fftIn.specSize();
int indice = 0;
float valeur = 0;
int maxFrequence = 0;
while(indice < nbreBandes){
if(fftIn.getBand(indice) > valeur){
valeur = fftIn.getBand(indice);
maxFrequence = indice;
}
indice = indice + 1;
}
if(maxFrequence > 0){
float deplacementX = map(maxFrequence, 0, 60, -5, 5);
float deplacementY = map(maxFrequence, 0, 60, -5, 5);
line(posX, posY, posX + deplacementX, posY + deplacementY);
posX = posX + deplacementX;
posY = posY + deplacementY;
}
}