Dessiner une rondelle

De Centre de Ressources Numériques - Labomedia
Révision de 3 novembre 2017 à 20:40 par Mushussu (discussion | contributions)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher
void setup() {
  size(800, 800);
}

void draw() {
  rondelle(400, 400, 400, 100); // x, y, diametre exterieur, diametre interieur
}

void rondelle(int x, int y, int dExt, int dInt) {
  float nombre = 0.551784;
  beginShape();
  vertex(x, y - dExt);
  bezierVertex(x + dExt * nombre, y - dExt, x + dExt, y - dExt * nombre, x + dExt, y);
  bezierVertex(x + dExt, y + dExt * nombre, x + dExt * nombre, y + dExt, x, y + dExt);
  bezierVertex(x - dExt * nombre, y + dExt, x - dExt, y + dExt * nombre, x - dExt, y);
  bezierVertex(x - dExt, y - dExt * nombre, x - dExt * nombre, y - dExt, x, y - dExt);
  beginContour();
  vertex(x, y - dInt);
  bezierVertex(x - dInt * nombre, y - dInt, x - dInt, y - dInt * nombre, x - dInt, y);
  bezierVertex(x - dInt, y + dInt * nombre, x - dInt * nombre, y + dInt, x, y + dInt);
  bezierVertex(x + dInt * nombre, y + dInt, x + dInt, y + dInt * nombre, x + dInt, y);
  bezierVertex(x + dInt, y - dInt * nombre, x + dInt * nombre, y - dInt, x, y - dInt);
  endContour();
  endShape();
}