関数
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
コメント