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

**URL:** <https://discourse.processing.org/t/dessiner-plusieurs-polygones-et-ils-doivent-formes-une-art-polynomial/26456>\
**Category:** Coding Questions\
**Created:** [December 23, 2020, 1:35am UTC](https://discourse.processing.org/t/dessiner-plusieurs-polygones-et-ils-doivent-formes-une-art-polynomial/26456 "2020-12-23T01:35:24Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![nina](https://avatars.discourse-cdn.com/v4/letter/n/e68b1a/32.png) [@nina](https://discourse.processing.org/u/nina)\
**Post date:** [December 23, 2020, 1:35am UTC](https://discourse.processing.org/t/dessiner-plusieurs-polygones-et-ils-doivent-formes-une-art-polynomial/26456/1 "2020-12-23T01:35:25Z")

</div>

> please format code with \</\> button \* [homework policy](https://discourse.processing.org/faq/#homework) \* [asking questions](https://discourse.processing.org/t/2147)

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:

```auto
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

---

<div class="post-metadata">

**Author:** ![paulgoux](https://avatars.discourse-cdn.com/v4/letter/p/b9bd4f/32.png) [@paulgoux](https://discourse.processing.org/u/paulgoux)\
**Post date:** [December 23, 2020, 8:48am UTC](https://discourse.processing.org/t/dessiner-plusieurs-polygones-et-ils-doivent-formes-une-art-polynomial/26456/2 "2020-12-23T08:48:52Z")

</div>

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.

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

```

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

---

<div class="post-metadata">

**Author:** ![noel](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/noel/32/213_2.png) [@noel](https://discourse.processing.org/u/noel)\
**Post date:** [December 23, 2020, 8:52am UTC](https://discourse.processing.org/t/dessiner-plusieurs-polygones-et-ils-doivent-formes-une-art-polynomial/26456/3 "2020-12-23T08:52:12Z")

</div>

Something like this?

```auto
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();
  }
}

```

---

<div class="post-metadata">

**Author:** ![nina](https://avatars.discourse-cdn.com/v4/letter/n/e68b1a/32.png) [@nina](https://discourse.processing.org/u/nina)\
**Post date:** [December 23, 2020, 12:26pm UTC](https://discourse.processing.org/t/dessiner-plusieurs-polygones-et-ils-doivent-formes-une-art-polynomial/26456/4 "2020-12-23T12:26:32Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![noel](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/noel/32/213_2.png) [@noel](https://discourse.processing.org/u/noel)\
**Post date:** [December 23, 2020, 1:34pm UTC](https://discourse.processing.org/t/dessiner-plusieurs-polygones-et-ils-doivent-formes-une-art-polynomial/26456/5 "2020-12-23T13:34:22Z")

</div>

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

```auto
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:

```auto
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);
    }
  }
}

```
