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