Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float theta;
- float n = 0, a, b;
- int frms = 120, num = 25;
- void setup() {
- size(750, 540);
- }
- void draw() {
- background(51);
- translate(width/2, height/2);
- noFill();
- stroke(238, 150);
- for (int i=0; i<num; i++) {
- float offSet = PI/3/num*i;
- n = map(sin(theta+offSet), -1, 1, 0.1, 3);
- a = map(sin(theta), -1, 1, 100, 200);
- b = a;
- beginShape();
- for (float angle = 0; angle<TWO_PI; angle+= 0.1) {
- float na = 2/n;
- float x = pow(abs(cos(angle+offSet)), na)*a*sgn(cos(angle));
- float y = pow(abs(sin(angle+offSet)), na)*b*sgn(sin(angle));
- vertex(x, y);
- }
- endShape(CLOSE);
- }
- theta += TWO_PI/frms;
- if (frameCount <= frms) saveFrame("image-###.gif");
- }
- int sgn(float val) {
- if (val>0) {
- return 1;
- } else if (val<0) {
- return -1;
- } else {
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement