見出し画像

atan2 - 2

Processingを勉強してます。
今はatan2をやってます。

今日のメモです。
円が前の円にひっつきながらどんどん発生させてます。
かっこよくならなかったのは残念ですが、一応意図通りにできたので残しておきます。

PImage img;
color col, col_bg, col_line;
int NUM=100000;
float[] x=new float[NUM];
float[] y=new float[NUM];
float[] r=new float[NUM];
float newX, newY, newR;
float angle;
int current;
int index;

void setup() {
 size(1280, 670);
 img=loadImage("data/picture.png");
 frameRate(5);
 colorMode(HSB, 360, 100, 100, 100);
 strokeWeight(0.5);
 col=color(40, 100, 100, 100);
 col_bg=color(200, 100, 100, 100);
 background(col_bg);
 current=0;
 index=1;
 image(img, 0, -10);
}

void draw() {
 col=color(random(360), 100, 100, random(10, 60));
 col_line=color(random(360), 100, 100, random(10, 60));
 fill(col);
 stroke(col_line);
 x[0]=width/2;
 y[0]=height/2;
 r[0]=10;
 ellipse(x[current], y[current], r[current]*2, r[current]*2);

 newX=random(width);
 newY=random(height);
 newR=random(5, 80);
 //ellipse(newX, newY, newR*2, newR*2);

 // atan2
 angle=atan2(newY-y[current], newX-x[current]);

 x[index]=x[current]+cos(angle)*(r[current]+newR);
 y[index]=y[current]+sin(angle)*(r[current]+newR);
 r[index]=newR;
 ellipse(x[index], y[index], r[index]*2, r[index]*2);

 index++;
 current++;
}

画像1


この記事が気に入ったらサポートをしてみませんか?