« Palimpseste 1 » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| (13 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 7 : | Ligne 7 : | ||
*contenu en blanc ou teintes de gris | *contenu en blanc ou teintes de gris | ||
*le mot choisi: "palimpseste" | *le mot choisi: "palimpseste" | ||
*[[choix de police | police]] "condensed" | *[[choix de police | police]] "condensed": la police choisie est "[http://www.infolipo.org/data/police_palimpseste.zip Tw Cen MT Condensed Extra Bold]" (à télécharger dans la bibliothèque des fontes du système). | ||
* | *déclenchement manuel de la [[Palimpseste_2 | phase 2]] | ||
==Code processing== | ==Code processing== | ||
| Ligne 48 : | Ligne 48 : | ||
Le mot est centré horizontalement et verticalement. | Le mot est centré horizontalement et verticalement. | ||
==La classe d'objet <code>lettre</code>== | |||
Ci-dessous, le même sketch processing développé avec un objet <code>lettre</code>, dont les instances sont ici chacune des lettres du mot "palimpseste". Chaque instance a des propriétés (un ID, un contenu/caractère, une valeur alpha d'opacité, de teinte de gris, une police de caractère, une taille de police, des coordonnées sur le plan, des coordonnées de translation, un degré de rotation sur le plan, des mesures de rotation dans l'axe X, Y et Z, etc.). Vous pouvez y ajouter d'autres propriétés dont vous auriez besoin. À cette classe d'objet <code>lettre</code> sont liées un constructeur <code>lettre</code> et une méthode <code>ecrire</code> qui sert à afficher les instances à l'écran selon leurs propriétés. Là encore, vous pouvez décider de créer vos méthodes dont vous auriez besoin. | |||
<pre> | |||
// police (taille et fonte) | |||
int tailleA = 198; | |||
PFont fontA = createFont("Tw Cen MT Condensed Extra Bold",tailleA); | |||
// tableau des instances de lettre du mot palimpseste | |||
lettre [] palimpseste = new lettre [0]; | |||
// variables initiales | |||
int xinit= -5; | |||
int yinit= 284; | |||
// initialisation | |||
void setup() { | |||
size(854, 480, P3D); // 3PD, mode pour une simulation 3D à l'écran | |||
background(0); // fond noir | |||
smooth(); | |||
noStroke(); | |||
//construction des instances de lettre et leur affectation dans le tableau de lettres "palimpseste" | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('p',1,0.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('a',2,91.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('l',3,180.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('i',4,228.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('m',5,276.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('p',6,407.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('s',7,497.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('e',8,569.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('s',9,649.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('t',10,721.0+xinit,0.0+yinit)); | |||
palimpseste = (lettre[]) append(palimpseste, new lettre('e',11,775.0+xinit,0.0+yinit)); | |||
} | |||
void draw() { | |||
// on ecrit les lettres de palimpseste | |||
background(0); | |||
for (int i=0; i<palimpseste.length; i++) { | |||
palimpseste[i].ecrire(); | |||
} | |||
} | |||
class lettre { | |||
// propriétés des instances de la classe | |||
int id_ltr; // identificateur de l'instance | |||
char ltr; // le caractère associé à l'instance | |||
int a = 255; // alpha | |||
int c = 255; // couleur | |||
PFont police = fontA; // police de caractère | |||
int taille = tailleA; // taille de caractère | |||
float x0; float y0; // coordonnées initiales de l'instance | |||
float x; float y; // coordonnées de l'instance | |||
float transx = 0.0; // décalage x | |||
float transy = 0.0; // décalage y | |||
float deg = 0.0; // angle (en °) de l'instance | |||
float rotX = 0.0; // angle de rotation axe des X | |||
float rotY = 0.0; // angle de rotation axe des Y | |||
float rotZ = 0.0; // angle de rotation axe des z | |||
// constructeur de l'instance lettre | |||
lettre (char L, int Lid, float Lx, float Ly) { | |||
ltr = L; | |||
id_ltr = Lid; | |||
x = x0 = Lx; | |||
y = y0 = Ly; | |||
} | |||
// methode d'écriture de l'instance sur le plan | |||
void ecrire() { | |||
pushMatrix(); | |||
translate(x,y); | |||
rotate(radians(deg)); | |||
rotateX(radians(rotX)); | |||
rotateY(radians(rotY)); | |||
rotateZ(radians(rotZ)); | |||
fill(c,a); | |||
textFont(police, taille); | |||
text(ltr, transx, transy); | |||
popMatrix(); | |||
} | |||
} | |||
</pre> | |||
Dernière version du 18 novembre 2010 à 08:44
Description
Première phase, statique, de Palimpseste. Le mot est projeté en superposition par tous les modules. Même mot, même police, même taille, même disposition.
Quelques contraintes
- format: 854 x 480, pour un picoprojecteur 16:9 comme les 3 candidats (Acer, Optoma, Samsung) les plus sérieux
- fond noir
- contenu en blanc ou teintes de gris
- le mot choisi: "palimpseste"
- police "condensed": la police choisie est "Tw Cen MT Condensed Extra Bold" (à télécharger dans la bibliothèque des fontes du système).
- déclenchement manuel de la phase 2
Code processing
Voici le code du premier état de la pièce.
PFont fontA;
int x=-5; //décalage horizontal
int y=284; //décalage vertical
int z=198; //taille de police
void setup() {
size(854, 480); // selon le picoprojecteur choisi (rapport 16:9)
background(0); // fond noir
fontA = createFont("Tw Cen MT Condensed Extra Bold",z); // définition de la police
noLoop();
}
void draw() {
textFont(fontA, z); //
fill(255); // couleur de fonte: blanc
//écriture du mot lettre à lettre
text("p",x,y);
text("a",91+x,y);
text("l",180+x,y);
text("i",228+x,y);
text("m",276+x,y);
text("p",407+x,y);
text("s",497+x,y);
text("e",569+x,y);
text("s",649+x,y);
text("t",721+x,y);
text("e",775+x,y);
}
Le mot est écrit lettre par lettre, de sorte à faciliter le traitement que l'on voudra opérer, en phase 2 et phases ultérieures, sur chacune d'entre elles.
Le mot est centré horizontalement et verticalement.
La classe d'objet lettre
Ci-dessous, le même sketch processing développé avec un objet lettre, dont les instances sont ici chacune des lettres du mot "palimpseste". Chaque instance a des propriétés (un ID, un contenu/caractère, une valeur alpha d'opacité, de teinte de gris, une police de caractère, une taille de police, des coordonnées sur le plan, des coordonnées de translation, un degré de rotation sur le plan, des mesures de rotation dans l'axe X, Y et Z, etc.). Vous pouvez y ajouter d'autres propriétés dont vous auriez besoin. À cette classe d'objet lettre sont liées un constructeur lettre et une méthode ecrire qui sert à afficher les instances à l'écran selon leurs propriétés. Là encore, vous pouvez décider de créer vos méthodes dont vous auriez besoin.
// police (taille et fonte)
int tailleA = 198;
PFont fontA = createFont("Tw Cen MT Condensed Extra Bold",tailleA);
// tableau des instances de lettre du mot palimpseste
lettre [] palimpseste = new lettre [0];
// variables initiales
int xinit= -5;
int yinit= 284;
// initialisation
void setup() {
size(854, 480, P3D); // 3PD, mode pour une simulation 3D à l'écran
background(0); // fond noir
smooth();
noStroke();
//construction des instances de lettre et leur affectation dans le tableau de lettres "palimpseste"
palimpseste = (lettre[]) append(palimpseste, new lettre('p',1,0.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('a',2,91.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('l',3,180.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('i',4,228.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('m',5,276.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('p',6,407.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('s',7,497.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('e',8,569.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('s',9,649.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('t',10,721.0+xinit,0.0+yinit));
palimpseste = (lettre[]) append(palimpseste, new lettre('e',11,775.0+xinit,0.0+yinit));
}
void draw() {
// on ecrit les lettres de palimpseste
background(0);
for (int i=0; i<palimpseste.length; i++) {
palimpseste[i].ecrire();
}
}
class lettre {
// propriétés des instances de la classe
int id_ltr; // identificateur de l'instance
char ltr; // le caractère associé à l'instance
int a = 255; // alpha
int c = 255; // couleur
PFont police = fontA; // police de caractère
int taille = tailleA; // taille de caractère
float x0; float y0; // coordonnées initiales de l'instance
float x; float y; // coordonnées de l'instance
float transx = 0.0; // décalage x
float transy = 0.0; // décalage y
float deg = 0.0; // angle (en °) de l'instance
float rotX = 0.0; // angle de rotation axe des X
float rotY = 0.0; // angle de rotation axe des Y
float rotZ = 0.0; // angle de rotation axe des z
// constructeur de l'instance lettre
lettre (char L, int Lid, float Lx, float Ly) {
ltr = L;
id_ltr = Lid;
x = x0 = Lx;
y = y0 = Ly;
}
// methode d'écriture de l'instance sur le plan
void ecrire() {
pushMatrix();
translate(x,y);
rotate(radians(deg));
rotateX(radians(rotX));
rotateY(radians(rotY));
rotateZ(radians(rotZ));
fill(c,a);
textFont(police, taille);
text(ltr, transx, transy);
popMatrix();
}
}