トップページへ

関数の利用

関数

Processing における関数の作り方は以下のようになります。

戻り値のデータ型 関数名(引数){
	ここに関数内の処理を書く
}

具体例を示します。

void setup(){
  int x = tenTimes(3);
  println( x );

  int[] d = new int[]{ 72, 91, 83, 765 };
  float y = average( d );
  println( y );

  exit();
}

int tenTimes( int a ){
  int r = a * 10;
  return r;
}

float average( int[] data ){
  float sum = 0;
  for( int i = 0; i < data.length; i++ ){
    sum += data[ i ];
  }
  return sum / data.length;
}

tenTimes という関数は int型の値を受け取り、それを 10 倍にした値を返す関数です。average という関数は int型の配列を受け取り、配列内の数値の平均を返す関数です。値を返す関数の場合は、関数内で必ずreturn 文を使って戻り値を指定する必要があります。

戻り値の無い関数の場合、戻り値のデータ型として void を使います。

void setup(){
  size( 600, 400 );
  background( 245 );
  colorMode( HSB, 100 );
  frameRate( 30 );
}

void draw(){
  stroke( color(random(100), 90, 90), 50 );
  drawY( random(width), random(height), random(50) );
}

void drawY( float x, float y, float barlength ){
  strokeWeight( 4 );
  line( x, y, x, y+barlength );
  line( x, y, x-barlength*0.7, y-barlength*0.7 );
  line( x, y, x+barlength*0.7, y-barlength*0.7 );
}

drawY という関数はXY座標と長さを受け取り Y の形を描く関数です。値は何も返さない関数なので、戻り値の型は void とします。


実行結果

組み込み関数

ユーザが定義する関数以外に、Processing には数多くのあらかじめ定義された関数(組み込み関数)が存在します。line関数やellipse関数もそうですし、setup関数やdraw関数などもその例です。Processing の公式サイトに主な関数のリストがあるので、一通り目を通しておくと良いでしょう。http://processing.org/reference