Dessiner plusieurs polygones et ils doivent formés une art polynomial

please format code with </> button * homework policy * asking questions

Bonjour,

J’ai fait un programme pour qu’il me fasse une translation si le déplacement était égale à vingt . Puis, j’ai utiliser une boucle For pour dessiner autant de fois un polygone.
Mais le problème est qu’il m’affiche rien, je voudrais savoir l’erreur que j’ai faite. S’il vous plait pouvez m’aider.

Voici mon programme:

int deplacement=20;
  int position=40;

beginShape(); 
 if(deplacement==20){
  translate(deplacement+position,deplacement+position);
  for(int i=0; i >340 ;i+=40){
   beginShape();
// le premier sommet
  vertex(340, 270);
// les autres sommets
  vertex(340, 290);
  vertex(350, 290);
// retour au point de départ
  vertex(340,270);
// ferme le polygone
  endShape();
}
  }

Je vous remercie d’avance.
Cordialement,
Nina

Tu utilise beginShape() 2 foix. Une fois avant la condition puis une fois dans la boucle. Celle a l’exterieur de la boucle n’est pas nécessaire.

Aussi ta boucle a une erreur dan l’initialisation.

i=0;i<340;i+=40

L’inégalité est dans le mauvais sense et donc la boucle n’est jamais accepter.

1 Like

Something like this?

int deplacement=20;
int position=10;

void setup() {
  size(500, 500);
  background(255);
}

void draw() {
  if ( position < 400) {
    pushMatrix();
    translate(position, 0);
    position += deplacement;
    beginShape();
    // le premier sommet
    vertex(40, 70);
    // les autres sommets
    vertex(40, 90);
    vertex(50, 90);
    // retour au point de départ
    vertex(40, 70);
    // ferme le polygone
    endShape();
    popMatrix();
  }
}
1 Like

Est-ce que tu peux m’expliquer comment tu as fait s’il te plait .

I took the for to loop out of the draw() loop to create an animation, see it more clearly with this code:

int deplacement=20;
int x_position = 10;
int y_position = 0;

void setup() {
  size(500, 500);
  background(255);
}

void draw() {
  if (x_position < 400) {
    pushMatrix();
    translate(x_position, y_position);
    x_position += deplacement;
    beginShape();
    // le premier sommet
    vertex(40, 70);
    // les autres sommets
    vertex(40, 90);
    vertex(50, 90);
    // retour au point de départ
    vertex(40, 70);
    // ferme le polygone
    endShape();
    popMatrix();
  } else {
    x_position = 10;
    y_position += 50;
  }
  if (y_position > 350) noLoop();
}

But you can also draw everything in one frame, like:

int x_deplacement = 20;
int y_deplacement = 50;
PShape shp;

void setup() {
  size(500, 500);
  background(255);
  fill(0);
  shp = createShape();
  shp.beginShape();
  // le premier sommet
  shp.vertex(40, 70);
  // les autres sommets
  shp.vertex(40, 90);
  shp.vertex(50, 90);
  // retour au point de départ
  shp.vertex(40, 70);
  // ferme le polygone
  shp.endShape();
}

void draw() {
  for (int x_position = 0; x_position < 420; x_position += x_deplacement) { 
    for (int y_position = 0; y_position < 400; y_position += y_deplacement) {
      shape(shp, x_position, y_position);
    }
  }
}

1 Like