Aiuto esercizio processing

di il
3 risposte

Aiuto esercizio processing

Ciao ragazzi,sono alle prime armi con processing e volevo chiedere aiuto su un esercizio....Ho creato due trasformazioni,dentro 2 funzioni, che devono essere in grado di alterare i pixel di un'immagine in modo diverso.Tramite una terza funzione,deve avvenire l'applicazione vera e propria all'immagine...Se il mouse non si sposta,nessuna modifica.Se si sposta,in base a come lo fa,verso l'alto o verso il basso, l'immagine deve dividersi in 2 parti orizzontali....se il puntatore sale,nella parte sotto di esso deve essere applicata la trasformazione 2 e sopra il puntatore la 1.Il contrario se scende verso il basso...sotto il puntatore la 1 e sopra la 2....
Mi sapete consigliare come impostare le varie condizioni + cicli FOR?

3 Risposte

  • Re: Aiuto esercizio processing

    Carlo.26 ha scritto:


    Se si sposta,in base a come lo fa,verso l'alto o verso il basso, l'immagine deve dividersi in 2 parti orizzontali....se il puntatore sale,nella parte sotto di esso deve essere applicata la trasformazione 2 e sopra il puntatore la 1.Il contrario se scende verso il basso...sotto il puntatore la 1 e sopra la 2....
    Presumo tu voglia determinare lo spostamento (in senso verticale) relativo del puntatore. Basta tenere la y "precedente" e poi fare il delta-y con la y corrente. Banalmente: se la y corrente è maggiore o minore della y precedente.
  • Re: Aiuto esercizio processing

    andbin ha scritto:


    Carlo.26 ha scritto:


    Se si sposta,in base a come lo fa,verso l'alto o verso il basso, l'immagine deve dividersi in 2 parti orizzontali....se il puntatore sale,nella parte sotto di esso deve essere applicata la trasformazione 2 e sopra il puntatore la 1.Il contrario se scende verso il basso...sotto il puntatore la 1 e sopra la 2....
    Presumo tu voglia determinare lo spostamento (in senso verticale) relativo del puntatore. Basta tenere la y "precedente" e poi fare il delta-y con la y corrente. Banalmente: se la y corrente è maggiore o minore della y precedente.
    grazie della risposta.
    Esatto,in verticale. Se la Y incrementa,si applicheranno le trasformazioni in un modo...Se decrementa,si applicheranno in un altro modo.Però quello che non riesco a fare è proprio il passaggio che hai detto tu...il valore della coordinata y del mouse va inserita in una variabile per poterla controllare successivamente? Con delta-y cosa intendi?
    Puoi avere la pazienza di spiegarmi meglio?
  • Re: Aiuto esercizio processing

    Carlo.26 ha scritto:


    il valore della coordinata y del mouse va inserita in una variabile per poterla controllare successivamente?
    Ovviamente. Devi avere una variabile a durata più lunga (quindi non certo una variabile locale es. nel draw() ).

    Prova questo:
    final int colorUp = 0xFF00FF00;  // verde
    final int colorDown = 0xFFFF0000;  // rosso
    
    int mouseYPrec = mouseY;
    
    void setup() {
      frameRate(30);
      size(300, 300);
      noStroke();
      rectMode(CORNER);
    }
    
    void draw() {
      if (mouseY != mouseYPrec) {
        boolean up = mouseY < mouseYPrec;
      
        fill(up ? colorUp : colorDown);
        rect(0, 0, width, mouseY);  // colora zona superiore al mouse
      
        fill(up ? colorDown : colorUp);
        rect(0, mouseY, width, height);  // colora zona inferiore al mouse
      }
    
      mouseYPrec = mouseY;
    }
    Muovi il cursore sulla finestra, la zona verde è sempre nella parte verso cui si muove il mouse!
Devi accedere o registrarti per scrivere nel forum
3 risposte