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
Bonjour,
Il faut utiliser ControlWindowCanvas, comme dans l'exemple ci-dessous ( d'après http://www.sojamo.de/libraries/controlP … canvas.pde )
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 :
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
merci pour ta réponse emoc,
je ne savais pas du tout ce qu'était canvas, je ne risquais pas de trouver!
Hors ligne
Pages: 1