マウスの移動変化量で速度が変わる
マウスの移動スピードによって、円周上を移動する円の速度が変わります。「マウスの位置による変化」セクションの円周上の移動速度と似ていますが、こちらはマウスの位置の変化量が、速度に関係します。マウスが画面上にある間の、マウスの移動スピードを感知するので、はじくように画面上でマウスを移動すると円が早く回り、画面上をマウスでゆっくりこするようにすると、遅くなります。
画面上でマウスを移動
【リスト CycleSpeed】 float henka; //マウスの移動距離 int wide = 150; float r = 60; //円の半径 float x, y; //円の位置 float angle; //速度(角度の速度) float ds; //加速度(速度の変化値) float max = 40; // 加速度の最大値 void setup() { size(wide, wide); // 画面サイズの設定 strokeWeight(10); } void draw() { noStroke(); fill(255, 75); //色は白、透明度を指定 rect(0,0,width, height); //背景を四角で塗りつぶす stroke(0); //黒で描く angle = (angle + ds)%360; //一周したら0に戻す x = r*cos(radians(angle)) + width/2; y = r*sin(radians(angle)) + height/2; point(x, y); //点を描く } void mouseMoved(){ henka = dist(mouseX, mouseY, pmouseX, pmouseY); if(henka <=1) henka = 0; //マウスが動いていないと、mouseMovedが最後に呼ばれた時の値1のままになる。 //少しずつ動いてしまうのを防ぐため、変化量が1以下になったら0とする ds = map(henka, 0, wide, 0, max); }