基于Pocessing临摹动态图像。
内部圆和外部圆的半径大小不断变换,形成动态效果。
float x=0;
float y=0;
float osc=0;
float radius = 0;
float rateRatio = 0.75;
void setup()
{
size(1000,1000);
fill(0); //新建1000x1000 并填充白色
radius = 0.5*width/float(num_side+1);//计算每个圆形的半径
frameRate(30);/帧数30
}
void draw()
{
t = t + dt;
background(255);
for(int i =0; i<num_side; i++)
{
for(int j =0; j<num_side; j++)
{
fill(0);
x=float(j)/float(num_side);
y=float(i)/float(num_side);
osc = radius*(sin(TWO_PI *(y+t))+ cos(TWO_PI *(x+t)));//随着时间变换,圆形的大小变换
ellipse(2*(radius+i*radius),2*( radius+j*radius),osc,osc);
}
}
for(int i =0; i<num_side; i++)
{
for(int j =0; j<num_side; j++)
{
x=float(j)/float(num_side);
y=float(i)/float(num_side);
fill(255);
osc = 25*(sin(TWO_PI *(y-rateRatio*t))+ cos(TWO_PI *(x-rateRatio*t)));
ellipse(2*(radius+i*radius),2*( radius+j*radius),osc,osc);
}
}
}