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

マウスの移動変化量で速度が変わる

マウスの移動スピードによって、円周上を移動する円の速度が変わります。「マウスの位置による変化」セクションの円周上の移動速度と似ていますが、こちらはマウスの位置の変化量が、速度に関係します。マウスが画面上にある間の、マウスの移動スピードを感知するので、はじくように画面上でマウスを移動すると円が早く回り、画面上をマウスでゆっくりこするようにすると、遅くなります。

Your browser does not support the canvas tag.

画面上でマウスを移動
【リスト 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);
}

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