====== Lisibilité/ Dysgraphie ======
* Porteur(s) du projet : Camille Descombes
* Date : Mai 2017
* Contexte : Cours de programmation
* source : http://www.asciitable.com, https://processing.org/reference/rotate_.html, https://processing.org/examples/letters.html
===== BUT =====
Le but de mon projet est de vouloir gêner la lisibilité du lecteur. En créant des niveaux de lecture différent. Le programme, duplique, superpose la typographie, pour créer des confusions. Dans le cadre de mon mémoire il permettrait de sensibiliser à la dyslexie, en montrant la gêne qu'un dyslexique peut éprouver quand il lit un texte.
Ce programme part de la librairie typo, que j'ai transformée pour obtenir l'alphabet de la lettre (counter<65) A à (counter=91) Z. Ensuite j'ai pu créer des classes de boutons de niveau différent. Dès le contact de la souris sur le bouton l'alphabet se complexifié.
===== PHOTO =====
{{:wiki:projets:projets-processing-dsaa1:capture_d_e_cran_2017-05-15_a_12.08.40.png?300|}}
{{:wiki:projets:projets-processing-dsaa1:capture_d_e_cran_2017-05-15_a_12.09.23.png?300|}}
{{:wiki:projets:projets-processing-dsaa1:capture_d_e_cran_2017-05-15_a_12.09.30.png?300|}}
===== Code du Programme =====
//attribut typographie
PFont f;
//attribut du bouton
button ton1;
button ton2;
//attribut boolean pour bouton
boolean overBox = false;
boolean locked = false;
boolean singlePress = false;
void setup() {
size(600, 360); //taille de la zone de travail
//initialisation des boutons
ton1 = new button();
ton2 = new button();
// Creation de la typographie
printArray(PFont.list());
f = createFont("HelveticaLTStd-Light.otf", 24);//aller cherhce la helvetica et la mettre en taille 24
textFont(f);
textAlign(CENTER, CENTER); // texte centré dans la zone de travaille
}
void draw() {
background(0); //fond noir
//dessin du bouton 1 (couleurs et positions)
ton1.setFill(255,255,255); //couleur du bouton
ton1.draw(30,height-80,100,40); // position du bouton
fill(0);
text("Niveau 1", 80, height-60);
//dessin du bouton 2 (couleurs et positions)
ton2.setFill(255,255,255); //couleur du boutton
ton2.draw(200,height-80,100,40); // position du bouton
fill(0);
text("Niveau 2", 250, height-60);
//BOUTON NIVEAU 1
if(ton1.clicked()){ //(voir class bouton)
pushMatrix();
int margin = 10; //marge
translate(margin*4, margin*4);
int gap = 64; //espacement entre lettres
int counter = 65; //début de l'alphabet (ici A majuscule 65 code-ASCII)
for (int y = 0; y < height-gap; y += gap) {
for (int x = 0; x < width-gap; x += gap) {
if (counter < 91) {
char letter = char(counter);
fill(255); //couleur de la typographie
text(letter, x, y);
rotate(PI);
translate(-510,-135);
text(letter, x, y);
counter++;
}}}
popMatrix();
fill(0,255,100,50); //bouton rectangulaire (saturation) rempli de gris
rect(30,height-80,100,40);
}
//BOUTON NIVEAU 2
else if(ton2.clicked()){ //(voir class bouton)
pushMatrix();
int margin = 10;
translate(margin*4, margin*4);
int gap = 64; //espacement entre lettres
int counter = 65; //début de l'alphabet (ici A majuscule 65 code-ASCII)
for (int y = 0; y < height-gap; y += gap) { //suite de l'alphabet qui démarre à 65 (A)et qui fini a 90 (Z)
for (int x = 0; x < width-gap; x += gap) {
if (counter < 91) {
char letter = char(counter);
fill(255); //couleur de la typographie
text(letter, x, y);
rotate(PI);
translate(-510,-135);
text(letter, x, y);
text(letter, x+10, y+10);
counter++;
}}}
popMatrix();
fill(255,150,0,50); //bouton rectangulaire (saturation) rempli de gris
rect(200,height-80,100,40);
}
else{
int margin = 10;
translate(margin*4, margin*4);
int gap = 64; //espacement entre lettres
int counter = 65; //début de l'alphabet (ici A majuscule 65 code-ASCII)
for (int y = 0; y < height-gap; y += gap) {
for (int x = 0; x < width-gap; x += gap) {
if (counter < 91) {
char letter = char(counter);
fill(255); //couleur de la typographie
text(letter, x, y);
// Increment the counter
counter++;
}}}
}
}
===== Classe bouton =====
class button{
//couleurs
int Red;
int Gre;
int Blu;
//coordonnées des boutons
int x;
int y;
int si1;
int si2;
//méthode pour remplir les boutons
void setFill(int R, int G, int B){
Red = R;
Gre = G;
Blu = B;
}
//méthode pour dessiner les boutons
void draw(int x1, int y1, int s1, int s2){
x = x1;
y = y1;
si1 = s1;
si2 = s2;
stroke(0);
fill(Red,Gre,Blu);
rect(x1, y1, s1, s2);
}
//États fonction du bouton
boolean clicked(){
if(mouseX > x && mouseX < (x+si1) && mouseY > y && mouseY < (y+si2) ){
overBox = true;
if(!locked) {
return true;
}
}
overBox = false;
return false;
}
}
===== Référence =====
Elle réalise une affiche interactives permettant de sensibiliser le public au trouble dysgraphique en venant perturber la lecture du spectateur via une déformation de la typographie. Ces déformations explorent les limites de lisibilité d’un texte. Les affiches réagissent grâce à une kinnect qui détecte la distance du spectateur. Celui-ci doit trouver la bonne distance pour parvenir à la lisibilité de l’écriture.
* Sandy Dauneau[[http://sandydauneau.fr/portfolio/dysgraphie/]]
{{:wiki:proto-memoires:camille-descombes:capture_d_e_cran_2017-04-26_a_23.17.47.png?200|}}{{:wiki:proto-memoires:camille-descombes:15.png?200|}}