viernes, 17 de junio de 2016

void setup() {
size(500, 500);


noFill();
stroke(255);
strokeWeight(2);
}

float t= - 0;

void draw(){
  background(0);
 
  translate(width / 2, height/ 2);
 
  beginShape();
 
  //ad some vertices ...
  for (float theta = 0; theta <= 2 * PI; theta +=0.01) {
    float rad = r(theta,
    2, //a
    2, //b
    6, //m
    1, //n1
    sin(t) *0.5 + 0.5, //n2
    cos(t) *0.5 + 0.5 //n3
    );
    float x = rad * cos(theta)*50;
    float y =rad * sin(theta)*50;
    vertex(x, y);
  }
 
  endShape();
 
  t += 0.1;
 
}


float r(float theta, float a, float b, float m, float n1, float n2, float n3) {
  return pow(pow(abs(cos (m * theta / 4.0)/ a), n2) + pow(abs(sin(m * theta / 4.0) / b), n3), -1.0/ n1);
}

No hay comentarios:

Publicar un comentario