/* * Disegna una spirale ellittica */ float a; // semiasse maggiore dell'ellisse float b; // semiasse minore dell'ellisse float alpha; // angolo float lastx, lasty, x, y; // coordinate precedenti e correnti float stepa, stepb; // incrementi degli assi void setup() { size(600, 400); background(255); smooth(); stroke(20, 50, 70); strokeWeight(5); a = 0; b = 0; stepa = 0.2; stepb = 0.1; // punto iniziale alpha = 0; x = width/2; y = height/2; } void draw() { lastx = x; lasty = y; // calcolo le coordinate di un punto sull'ellisse x = width/2 + a * cos(alpha); y = height/2 + b * sin(alpha); // unisco con una linea il punto corrente e quello precedente line(x, y, lastx, lasty); // incremento l'angolo di un grado alpha = alpha + radians(1); // incremento gli assi dell'ellisse a = a + stepa; b = b + stepb; }