Annonce

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


#1 2010-02-05 01:02:46 Dessiner dans une deuxième fenêtre

Ynk
membre
Date d'inscription: 2009-11-05
Messages: 15

Dessiner dans une deuxième fenêtre



Bonjour,

À l'aide de controlP5 je crée une deuxième fenêtre où s'affichent des sliders (toujours de controlP5).
Jusque là tout va bien car j'utilise la classe (je sais pas si on appelle ça une classe ou une méthode...?) :

.setWindow(controlWindow);

Mais si je décide de dessiner une forme à l'aide de bezierVertex, comment dois-je faire?

n'y aurait-il pas un genre de shape().setWindow(controlWindow);?

merci !

Hors ligne

 

#2 2010-02-26 10:25:56 Re : Dessiner dans une deuxième fenêtre

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: Dessiner dans une deuxième fenêtre



Bonjour,

Il faut utiliser ControlWindowCanvas, comme dans l'exemple ci-dessous ( d'après http://www.sojamo.de/libraries/controlP … canvas.pde )

Code (p5) :

import controlP5.*;

/**
 * ControlP5 canvas.
 * WARNING
 * ControlCanvas and ControlWindowCanvas are yet EXPERIMENTAL
 * and therefore will undergo changes in the future before being
 * fully functional!
 *
 * by andreas schlegel, 2009
 */


ControlP5 controlP5;
ControlWindow controlWindow;
ControlWindowCanvas cc;

// your controlWindowCanvas class
class MyCanvas extends ControlWindowCanvas {
  public void draw(PApplet theApplet) {
    theApplet.fill(random(255));
    theApplet.rect(theApplet.mouseX,10,100,100);
  }
}


void setup() {
  size(400,400);
  frameRate(30);
  controlP5 = new ControlP5(this);

  // create a control window.
  controlWindow = controlP5.addControlWindow("controlP5window",100,100,400,400,30);

  // for continuous update use ControlWindow.NORMAL  to update a control
  // window only when it is in focus, use ControlWindow.ECONOMIC
  // economic is the default update value.
  controlWindow.setUpdateMode(ControlWindow.NORMAL);


  // create a control window canvas and add it to
  // the control window from above.  
  cc = new MyCanvas();
  cc.pre(); // use cc.post(); to draw on top of the controllers.
  controlWindow.addCanvas(cc);

}


void controlEvent(ControlEvent theEvent) {
  println(theEvent.controller().id()+"  /  "+
    theEvent.controller()+"  /  "+
    theEvent.controller().value()
    );
}


void draw() {
  background(0);
}

Par exemple pour dessiner une courbe avec bezierVertex dans la nouvelle fenêtre, remplacer la classe MyCanvas par  :

Code (p5) :

class MyCanvas extends ControlWindowCanvas {
  public void draw(PApplet theApplet) {
    theApplet.fill(255);
    theApplet.beginShape();
    theApplet.vertex(30, 20);
    theApplet.bezierVertex(80, 0, 80, 75, 30, 75);
    theApplet.bezierVertex(50, 80, 60, 25, 30, 20);
    theApplet.endShape();
  }
}

Hors ligne

 

#3 2010-02-26 12:17:02 Re : Dessiner dans une deuxième fenêtre

Ynk
membre
Date d'inscription: 2009-11-05
Messages: 15

Re: Dessiner dans une deuxième fenêtre



merci pour ta réponse emoc,
je ne savais pas du tout ce qu'était canvas, je ne risquais pas de trouver!

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024