Voici un exemple de codage de pop matrix et push matrix avec une rotation et une translation.
On peut insérer une image à la place du polygone dessiné par beginShape(); ... endShape(CLOSE);
- Code: Tout sélectionner
float x;
float y;
float angle=0;
float vitesse=0;
void keyPressed() {
if (key == CODED) {
if (keyCode == UP) {
vitesse=vitesse+1; }
if (keyCode == DOWN) {
vitesse=vitesse-1; }
if (keyCode == LEFT) {
angle=angle-1;
}
if (keyCode == RIGHT) {
angle=angle+1;
}
}
}
void dessinepointe(float x, float y, float angle) {
imageMode(CENTER);
pushMatrix();
translate(x, y);
rotate(PI*angle/180);
fill(#0000FF);
beginShape();
vertex(0, -15);
vertex(10, 15);
vertex(-10, 15);
endShape(CLOSE);
popMatrix();
}
void setup() {
size(800, 800);
x=width/2;
y=height/2;
angle= 0;
smooth();
}
void draw() {
background(#FFFFFF);
x=x+vitesse*cos(PI*(angle-90)/180) ;
y=y+vitesse*sin(PI*(angle-90)/180);
if (x>width) x=width;
if (y>height) y=height;
if (x<0) x=0;
if (y<0) y=0;
dessinepointe(x,y,angle);
}
