Catégories
p5.js Processing Programmation

Understand and play with translate() and rotate()

p5.js and Processing both have a translate() and rotate() function that basically allows to change default position and orientation of axis.

The p5.js sketch available below allows to play with their parameters and immediately see the result as in this demonstration video.

Catégories
Processing Programmation

Resize event in Processing sketch

Here is how to make the Processing window resizable AND get an event when the window is resized.

Tested with Processing 3.

// For resize event
import java.awt.Canvas;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentAdapter;


void setup() {
  surface.setResizable(true);

  ((Canvas)surface.getNative()).addComponentListener(new ComponentAdapter() {
    @Override public void componentResized(ComponentEvent e) {
      println("resized " + width + " " + height);
    }
  }
  );
}

Catégories
Processing Programmation

Nombres entiers aléatoires avec pas différent de 1

Pour générer un entier aléatoire avec un « pas » différent de 1, on peut faire comme ça:

  1. générer un nombre aléatoire (généralement un float)
  2. le diviser par le pas voulu
  3. l’arrondir
  4. le multiplier par le pas

Ca marche bien si les bornes (ci-dessous 30 et 50) sont des multiples du pas.

Exemple: Pas de 5 entre 30 et 50

void draw() {
  println(round(random(30, 50) / 5) * 5);
}

Si les bornes ne sont pas des multiples du pas, il faut en tenir compte:

  1. calculer la plage (max – min)
  2. générer un nombre aléatoire dans la plage avec un pas comme ci-dessus
  3. ajouter le min

Exemple: Pas de 5 entre 32 et 42

void draw() {
 println(32 + round(random(42 - 32) / 5) * 5);
}
Catégories
Processing Programmation

Processing error « WARNING: RXTX Version mismatch »

Problem

Using Processing 1.5.1, I used to have this message when starting a sketch using serial communication:

WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2

Also, I get another error when quitting the sketch:

APP_NAME a quitté de manière imprévue lors de l'utilisation du module librxtxSerial.jnlilib.

Invalid memory access of location 0xb19bdb60 eip=0x6301c90c

Solution

The easiest solution I found is to download Arduino (1.0.1 at that time) and copy 2 fils from Arduino folder to Processing folder.

  • Quit Processing
  • Open Arduino and Processing packages (right click application file, show package content)
  • Find RXTXcomm.jar and librxtxSerial.jnilib in /Applications/Arduino.app/Contents/Resources/Java
  • Find the same files in Processing package (in /Applications/Processing.app/Contents/Resources/Java/modes/java/libraries/serial/library and the macosx subfolder)
  • Copy each file from Arduino folder and replace them in Processing folder
Catégories
Processing Programmation

Kaléidoscope

Cet exemple Processing utilise la classe PGraphics et un masque pour extraire un secteur circulaire d’une image et le reproduire en plusieurs exemplaires, à la manière d’un kaléidoscope.

Catégories
Processing Programmation

Perlin noise: une alternative à random()

La fonction Perlin noise est un générateur de séquence aléatoire qui produit une succession de nombres plus naturellement ordonnée, harmonique comparée à la fonction standard random(). Elle a été inventée par Ken Perlin en 1980 et a été utilisée depuis dans des applications graphiques pour produire des textures procédurales, des mouvements naturels, des formes, des terrains, etc.

Cette application permet de tester différents paramètres liés à la fonction noise() de Processing et de voir les résultats en temps réel.