Annonce

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


#1 2012-08-16 14:48:45 masques

guibite
membre
Date d'inscription: 2012-08-16
Messages: 12

masques



Bonjour,

je me permets de vous poser une question de débutant:
est-ce qu'il existe des masques dans processing?
Je voudrais afficher plusieurs zones d'animations différentes mais je n'y arrive pas.
J'ai bien essayé avec une image en png de la zone à masquer, mais ça ne fonctionne que pour une seule zone.

Merci d'avance si vous pouvez me guider…

Bonne journée,
JB

Hors ligne

 

#2 2012-08-16 16:12:49 Re : masques

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: masques



genre des masques alpha ?

Hors ligne

 

#3 2012-08-16 16:18:25 Re : masques

guibite
membre
Date d'inscription: 2012-08-16
Messages: 12

Re: masques



genre j'ai un dessin sur toute la scène, mais je ne veux voir qu'une partie dans un rond au centre de la scène par exemple.
Donc ce cas de figure, j'y arrive en affichant par dessus le dessin, une image png avec un "trou".
Mais ce que je voudrais faire c'est un dessin avec juste une partie visible en haut à gauche par exemple, puis un autre dessin avec une partie visible en bas à droite etc.

Merci pour ton aide, j'espère que mes explications sont claires…

Hors ligne

 

#4 2012-08-17 12:03:39 Re : masques

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: masques



Donc c'est bien un masque alpha
Pour ça tu crées un PGraphics contenant ton masque, puis tu applique un tonPImage.mask(tonPGraphics);

Dernière modification par cgiles (2012-08-17 12:27:56)

Hors ligne

 

#5 2012-08-17 12:38:38 Re : masques

guibite
membre
Date d'inscription: 2012-08-16
Messages: 12

Re: masques



Merci beaucoup pour ton aide!
J'ai testé avec 2 images, une pour chaque masque, et c'est exactement ce que je veux.
À un détails près… à la place des images, ce sont des animations que je voudrais masquer.
C'est à dire que je code une petite anim dans le draw(), et c'est cette anim que je voudrais masquer en partie.
Du coup j'ai tenté un this.mask(masque) en croisant les doigts très fort mais bien sûr…

De plus mes masques sont des formes complexes, du coup je me demande si il n'existe pas un moyen d'importer une image, et de dire, animation.mask(image)…

Hors ligne

 

#6 2012-08-17 15:02:37 Re : masques

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: masques



ben tu appliques ton mask a l'ensemble des images de ton animation

Hors ligne

 

#7 2012-08-17 15:23:51 Re : masques

guibite
membre
Date d'inscription: 2012-08-16
Messages: 12

Re: masques



Ben j'ai essayé en faisant ça, mais ça marche pas…

PGraphics masque;
ArrayList <pointBas> tousLesPointsBas;
ArrayList <pointHaut> tousLesPointsHaut;
float laDistance;

void setup() {
  size(500, 500);
  background(255);
  smooth();

  masque=createGraphics(width, height, P2D);
  masque.beginDraw();
  masque.background(0);
  masque.ellipseMode(CENTER);
  masque.noStroke();
  masque.fill(255);
  masque.ellipse(width/2, height/2, 100, 100);
  masque.endDraw();

  tousLesPointsBas = new ArrayList<pointBas>();
  tousLesPointsHaut = new ArrayList<pointHaut>();

  for (int a=0; a<5; a++) {
    for (int b=0; b<10; b++) {
      pointBas pb = new pointBas(a*100+25, b*50);
      pb.mask(masque);
      tousLesPointsBas.add(pb);
      pointHaut ph = new pointHaut(a*100+75, b*50);
      ph.mask(masque);
      tousLesPointsHaut.add(ph);
    }
  }
}

Hors ligne

 

#8 2012-08-17 16:52:29 Re : masques

Makio135
membre
Lieu: Lyon
Date d'inscription: 2010-11-11
Messages: 89
Site web

Re: masques



la classe PGraphics ou la classe PImage ont une méthode mask(), là tu essaies de l'appliquer à une classe PointBas ou PointHaut...

faudrait voir ta classe

Hors ligne

 

#9 2012-08-17 16:56:34 Re : masques

jbb
nouveau membre
Date d'inscription: 2012-05-08
Messages: 2

Re: masques



voici mes classes

class pointBas {
  float posX, posY;
  int vitesse = 2;
  pointBas(float x, float y) {
    posX = x;
    posY = y;
    point(posX, posY);
  }

  void bouge() {
    posY+=vitesse;
    if (posY>=500) {
      posY = 0;
    }
    strokeWeight(3);
    stroke(0, 100);
    point(posX, posY);
  }
}

class pointHaut {
  float posX, posY;
  int vitesse = 2;
  pointHaut(float x, float y) {
    posX = x;
    posY = y;
    point(posX, posY);
  }

  void bouge() {
    posY-=vitesse;
    if (posY<=0) {
      posY = 500;
    }
    strokeWeight(3);
    stroke(0, 100);
    point(posX, posY);
  }
}

Hors ligne

 

#10 2012-08-17 17:01:05 Re : masques

jbb
nouveau membre
Date d'inscription: 2012-05-08
Messages: 2

Re: masques



hmm ah ben mince alors, j'ai 2 comptes…

Hors ligne

 

#11 2012-08-18 12:10:40 Re : masques

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: masques



tu dois ajouter un PImage dans chacune de tes classes
que tu peux initialiser comme ceci :
PImage pict;
pointBas(float x, float y,string nomImage){
pict=loadImage(nomImage);
(...)
}
ensuite tu ajoutes une méthode mask a tes classes
void mask(PGraphics masque){
pict.mask(masque)
}

Hors ligne

 

#12 2012-08-18 12:40:42 Re : masques

guibite
membre
Date d'inscription: 2012-08-16
Messages: 12

Re: masques



Je ne comprends pas bien, tu me proposes de charger une image et de la masquer, c'est ça?
Mais moi c'est pas une image que je veux masquer, ce sont mes pointBas et mes pointHaut.

Hors ligne

 

#13 2012-08-18 17:56:30 Re : masques

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: masques



Alors tu calcules la position de tes points par rapport au forme de tes masques, et si ils sont dedans tu les masques ou les affichent
regardes les examples de bouton dans les exemples fournis avec processing, tu trouveras comment savoir si quelque chose est dans un cercle ou non

Hors ligne

 

#14 2012-08-19 17:10:00 Re : masques

guibite
membre
Date d'inscription: 2012-08-16
Messages: 12

Re: masques



Je vais regarder ça parce que ça m'intéresse, mais ça ne marche pas pour des formes complexes, si?
À moins bien-sûr de faire des calculs savants j'imagine.
Ça n'est pas possible de charger une forme vectorielle et de s'en servir de masque?

Hors ligne

 

#15 2012-08-20 08:51:52 Re : masques

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: masques



en récupérrant le tableau de pixel du masque et en testant si le pixel est noir ou blanc
http://processing.org/reference/pixels.html
http://processing.org/reference/PImage_loadPixels_.html

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2025