Annonce

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


#1 2011-01-22 23:42:35 Changer la couleur d'un pixel au survol de la souris

Fluctuhon
nouveau membre
Date d'inscription: 2011-01-22
Messages: 1

Changer la couleur d'un pixel au survol de la souris



Salut,

Novice en processing, je viens quémander un peu d'aide car ce problème commence à me rendre fou smile

Alors voila, dans mon programme j'ai une image composée de pixels de couleurs aléatoire. Je peux agrandir ou réduire cette image, ce qui change le nombre de pixels (et donc la taille de ces pixels)
J'aimerais qu'au survol de la souris, le pixel change de couleur de facon aléatoire (genre random (255)).
J'ai bien lu ce sujet : http://codelab.fr/147 mais je ne comprends toujours pas comment faire le rapprochement entre les coordonnées de la souris et le numéro du pixel.

Merci d'avance wink

Dernière modification par Fluctuhon (2011-01-22 23:42:49)

Hors ligne

 

#2 2011-01-23 10:26:38 Re : Changer la couleur d'un pixel au survol de la souris

oyster_twiter
membre
Lieu: saint-herblain
Date d'inscription: 2008-04-01
Messages: 444
Site web

Re: Changer la couleur d'un pixel au survol de la souris



hello,

à partir de la proposition de Shiffman, qui dit ceci :
LOCATION = X + Y*WIDTH

donc :

for(int x=0; x<width; x++){
  for(int y=0; y<height; y++){
 int location = x + y *width;
  }
}

après tu dois vérifier si les coordonnées de ta mouse correspondent à la position de tes pixels, ça pourrait ressembler à quelque chose comme ça:

  loadPixels();
  m.loadPixels();
  int locMouseX = int(mouseX);
  int locMouseY = int(mouseY) ;

  for(int x=0; x<width; x++) {
    for(int y=0; y<height; y++) {
      int location = x + y * w;

      if(locMouseX == x && locMouseY == y) {
        color c = color(int(random(255)), int(random(255)), int(random(255)));
        pixels[location]= c ;
      }
    }
  }
  updatePixels();

mais si je comprends bien, tu transformes au préalable tes pixels en rect en fonction du zoom que tu fais dans ton image ...?

Dernière modification par oyster_twiter (2011-01-23 19:18:35)

Hors ligne

 

#3 2011-01-26 13:19:46 Re : Changer la couleur d'un pixel au survol de la souris

oyster_twiter
membre
Lieu: saint-herblain
Date d'inscription: 2008-04-01
Messages: 444
Site web

Re: Changer la couleur d'un pixel au survol de la souris



Je sais pas si j'ai été suffisament clair donc je reviens sur ce post :

Les coordonnées de ta souris :

x = mouseX;

et

y = mouseX;

Les coordonnées de ton pixel :

x = indexDeTonpixel % width;

et

y = indexDeTonPixel / width;

par exemple :

après tu accèdes à ton pixel comme ça:

pixels[indexDeMonPixel] = color(255, 0, 0); // la je colorie le pixel en rouge

tu récupères ses coordonnées comme ci:

int pixelX = indexDeMonPixel % width;
int pixelY = indexDeMonPixel / width;

puis tu peux vérifier si ta souris est au dessus de ton pixel (ce qui ne sera pas simple à vérifier vu la taille de ton pixel smile )

if(mouseX == pixelX && mouseY == pixelY) println("je suis dessus !");

surtout n'oublis pas d'updater les pixels, pour rafraichir l'image:

updatePixels();

voilà, j'espère avoir été plus clair :smile

+++

Dernière modification par oyster_twiter (2011-01-26 13:23:12)

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024