インタラクションリストに戻る    印刷する

円周上で拡大縮小する円

閾値により、スイッチがオンオフするプログラム例です。円が円周上にda(8)度の間隔で描かれます。その大きさがスイッチのオンオフで拡大縮小を繰り返します。マウスのx座標が、閾値(今の場合画面幅の二分の一)を超えたら、スイッチが入ります。

Your browser does not support the canvas tag.

【リスト ExpandMatrix2】
float dr = 2;  //直径の変化量
float d=0;
float x, y;
float angle; // 位置(角度)
float da = 8; // 円周上に描く円の間隔(角度)
float len = 50; // 配置の円の半径
float level;

void setup(){
  size(150, 150);
  level = width/2.0;
  PFont f = createFont("Arial", 14); //文字を描くためのフォントの準備
  textFont(f);
  textAlign(CENTER, CENTER); //描く文字列の中央の座標を指定
}

void draw(){
   background(255); 
   if( mouseX >= level) { //オン(true)のとき
      d = d+dr;          //1増やす
   }
   if(d>width*2) dr = -dr; //拡大縮小の向きを反転
   else if(d<0) dr=-dr;
   noFill();
   for(angle=0; angle<360;  angle = angle + da){
      x =len * cos(radians(angle)) + width/2.0;
      y =len * sin(radians(angle)) +  height/2.0;
      ellipse(x, y, d, d);
   }
   fill(0); //画面下部に、黒で、off | onの文字を描く
   text("off", width/4.0, height-10);
   text("|", width/2.0, height-10);
   text("on", 3*width/4.0, height-10);
}

arigat アットマーク acm.org / copyright © info