float eSize = 0; //オブジェクトのサイズ(スムーズに変化させるためにfloatを使用) float eSizeTarget = 0; //オブジェクトのサイズとして目指す数値 float x = 0; //オブジェクトのx座標 float y = 0; //オブジェクトのy座標 void setup() { size(400, 400); //画面の大きさを決める background(255); //黒背景 ellipseMode(CENTER); //ellipseの基準を真ん中に stroke(255); } void draw() { background(255); fill(0); for (int angle = 0; angle < 360; angle += 360/10) { translate(width / 2, height / 2); //画面の中心へいどう rotate(radians(angle)); //angleの角度だけ回転 translate(-width/2, -height/2); //位置を戻す eSize += (eSizeTarget - eSize)/2000.0; //あるべきサイズに向けて、減衰しながらサイズを変更する。 ellipse(x + 20, y + 20, eSize, eSize); //円を描画する。 } } void mousePressed(){ x = width - mouseX; y = height - mouseY; eSize = 0; //サイズを0に設定 int distance = abs(width/2 - mouseX) + abs(height/2 - mouseY); //マウスカーソルと画面中心の距離。 eSizeTarget = distance; //あるべきサイズを距離に応じて変更。 }