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++;
}
この記事が気に入ったらサポートをしてみませんか?