Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2015-02-01 23:21:17 Cabine photo = processing le bon?

davidudo
membre
Date d'inscription: 2014-02-14
Messages: 10

Cabine photo = processing le bon?



Bonsoir à tous!

Un peu perdu dans les possibilités logicielles, je viens vers vous pour vous demander si processing est adapté à ce que je veux faire, une cabine photo:

La cabine, après plusieurs questions (réponses par boutons poussoirs) déterminerait par exemple un logo ou une phrase, qui serait incrusté sur une photo prise par une webcam, le tout envoyé par mail à la personne qui l'aura rentré via un clavier.
Processing est il donc adapté à ce genre de creation interactive avec interface?

Merci d'avance pour vos réponses

bonne soirée


David

Hors ligne

 

#2 2015-02-02 09:10:40 Re : Cabine photo = processing le bon?

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Cabine photo = processing le bon?



Bonjour,

Oui, tu peux avec Processing programmer tout cela.
Tu trouveras la gestion de la webcam dans les exemples
Pour les boutons tu as le choix entre dépiauter un clavier en gardant les touches lettres et chiffres pour l'adresse et en réserver 4 ou plus pour les boutons poussoirs. Soit tu utilises une Arduino avec Firmata pour récupérer les informations.
Pour envoyer le courriel :
http://shiffman.net/2007/11/13/e-mail-processing/

Bon courage

Hors ligne

 

#3 2015-02-17 19:41:13 Re : Cabine photo = processing le bon?

davidudo
membre
Date d'inscription: 2014-02-14
Messages: 10

Re: Cabine photo = processing le bon?



Merci pour ta réponse! (et pardon pour le retard de la mienne..!)
Comme beaucoup, je suis un débutant qui vient pêcher des informations sur ce forum.

Je bloque sur la partie questionnaire, et même sur l'architecture de base de mon programme. Je connais pour l'instant la fonction draw, mais est-ce vraiment cela que je dois utiliser pour mon programme "par étapes"?
Je veux dire par là que étant donné que le début de mon programme est un questionnaire, une question, deux choix de réponses (par touche clavier d'abord, puis boutons poussoirs+arduino quand le début fonctionnera...), puis une autre question etc, draw est plutôt réservée à du dessin en temps réel non? Pas en gros, à une suite de diapo/affichages (pour beaucoup simplifier...)?

Hors ligne

 

#4 2015-02-18 09:02:11 Re : Cabine photo = processing le bon?

UlrichH
nouveau membre
Date d'inscription: 2015-02-15
Messages: 5

Re: Cabine photo = processing le bon?



Salut davidudo,

Pour ta structure, il faut bien avoir en tête que draw est une boucle. Il faut donc forcer tes étapes. Dans ton cas :

void draw(){
  if (choixLogo == 1){
    // Gérer toutes tes actions de choix de logo dans une Classe ou des fonctions séparées
    // Puis une fois géré, passer la variable à 0
  } else if (prisePhoto == 1) {
    // Pareil, mais comme tu as passé le choixLogo à 0, ca tombe sur toute ton étape prise de photo
..........

J'espère être clair. Je débute également, il est possible qu'il existe de meilleures façons de faire !

Hors ligne

 

#5 2015-02-18 17:52:07 Re : Cabine photo = processing le bon?

davidudo
membre
Date d'inscription: 2014-02-14
Messages: 10

Re: Cabine photo = processing le bon?



Oui c'est tout à fait clair, je ne voyais pas les choses comme ça mais effectivement c'est logique maintenant wink
merci!

Hors ligne

 

#6 2015-02-18 18:05:42 Re : Cabine photo = processing le bon?

UlrichH
nouveau membre
Date d'inscription: 2015-02-15
Messages: 5

Re: Cabine photo = processing le bon?



Aucun souci !
Si t'as besoin d'aide, hésite pas à MP wink

Hors ligne

 

#7 2015-02-21 19:24:09 Re : Cabine photo = processing le bon?

davidudo
membre
Date d'inscription: 2014-02-14
Messages: 10

Re: Cabine photo = processing le bon?



je reviens ici pour un nouveau problème, la méthode que tu m'as montré fonctionne du tonnerre, seulement...
Pour l'instant , en gros j'ai une variable qui est incrémenté à chaque appui d'une touche (touche BAS) et qui sera plus tard remplacé par un bouton géré par arduino mais ne mettons pas la charue avant les boeufs...
Bref, le problème est que si l'appui est un peu long, il me fait défiler tout le programme d'un coup...

Pourtant j'ai bien utilisé un keyPressed qui je pensait détectais l'appui d'une touche, mais non... As tu une solution?

void avanceePgr(){  //fonction d'avancement dans le programme
    if (keyPressed == true){  //pressage de touche BAS
    if(key == CODED){
      if(keyCode == DOWN){
        prg++;

      }
    }
  }
}

Hors ligne

 

#8 2015-02-21 20:31:37 Re : Cabine photo = processing le bon?

Nicolas Lhommet
membre
Date d'inscription: 2014-01-18
Messages: 194

Re: Cabine photo = processing le bon?



Salut ! La variable globale keyPressed (https://processing.org/reference/keyPressed.html) que tu utilises, c'est bien quand on veut savoir si une touche est "actuellement" pressée. Mais vérifier sans cesse sa valeur (dans la boucle draw() ), ce n'est pas idéal.

Pour ça, il y a les événements : l'événement déclenché par la pression d'une touche exécutera la fonction keyPressed() (à placer dans ton programme) et dans laquelle tu peux ensuite "détecter" la touche pressée, puis exécuter les commandes de ton choix selon la touche (voir la documentation de Processing : https://processing.org/reference/keyPressed_.html).
Il existe aussi la fonction keyReleased(), exécutée quand une touche est relâchée (https://processing.org/reference/keyReleased_.html). Enfin tout ça, ceux qui ont pris la peine de lire la doc le savaient déjà. smile

En cas d'appui prolongé, le système simulera des pressions de touches répétées. Si on veut ignorer ces dernières, on peut procéder comme ceci (j'ai juste repris et complété l'exemple de la documentation) :

int value = 0;
boolean appui;

void draw() {
  fill(value);
  rect(25, 25, 50, 50);
}

void keyPressed() {
  if (!appui) {
    appui = true;
    if (value == 0) {
      value = 255;
    } else {
      value = 0;
    }
  }
}
void keyReleased() {
  appui = false;
}

Dernière modification par Nicolas Lhommet (2015-02-21 20:32:45)

Hors ligne

 

#9 2015-02-21 23:29:18 Re : Cabine photo = processing le bon?

davidudo
membre
Date d'inscription: 2014-02-14
Messages: 10

Re: Cabine photo = processing le bon?



Merci pour ta réponse précise et plus que rapide!  smile
Je ne comprends pas bien pourquoi compliquer les choses avec le booléen...
Pourquoi pas simplement:

int value = 0;


void draw() {
  fill(value);
  rect(25, 25, 50, 50);
}

void keyPressed() {
 
  if (keyCode == DOWN){  
  if (value == 0) {
      value = 255;
    } else {
      value = 0;
    }
  }
}
void keyReleased() {
  value = 0;
}

Dernière modification par davidudo (2015-02-21 23:37:33)

Hors ligne

 

#10 2015-02-21 23:37:57 Re : Cabine photo = processing le bon?

davidudo
membre
Date d'inscription: 2014-02-14
Messages: 10

Re: Cabine photo = processing le bon?



et d'ailleurs j'ai en fait aussi dans mon programme déjà utilisé keyPressed() pour récupérer une adresse mail (récupéré ici http://www.learningprocessing.com/examp … mple-18-1/), mais je ne vois pas comment "mixer" mes deux keypressed...

Hors ligne

 

#11 2015-02-22 10:08:16 Re : Cabine photo = processing le bon?

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Cabine photo = processing le bon?



Bonjour,

Tu peux tester si une touche est un caractère ou une touche de fonctionnalité. Ainsi tu peux agir en conséquence :

PFont f;

String typing = "";
String saved = "";
boolean drapeau;

void setup() {
  size(300, 200);
  f = createFont("Arial", 16, true);
  drapeau = false;
}

void draw() {
  if (drapeau) {
    background(0, 255, 0);
  } else {
    background(255, 0, 0);
  }
  int indent = 25;
  textFont(f);
  fill(0);
  text("Click in this applet and type. \nHit return to save what you typed. ", indent, 40);
  text(typing, indent, 90);
  text(saved, indent, 130);
}

void keyPressed() {
  if (key == CODED) {
    if (keyCode == DOWN) { 
      drapeau = !drapeau;
    }
  } else { 
    if (key == '\n' ) {
      saved = typing;
      typing = "";
    } else {
      typing = typing + key;
    }
  }
}

Hors ligne

 

#12 2015-02-23 13:10:08 Re : Cabine photo = processing le bon?

davidudo
membre
Date d'inscription: 2014-02-14
Messages: 10

Re: Cabine photo = processing le bon?



Je comprends mieux, tout fonctionne, merci beaucoup pour l'aide!

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024