第11回 |
色の指定(その2)、アニメーション |
1 色の指定(その2) |
・ 色の指定(再掲) 描画などの色は3つのパラメータ R(赤色)、G(緑色)、B(青色)の成分を 0~255 で指定します。 ■ ( 0, 0, 0 ) ■ ( 255, 0, 0 ) ■ ( 0, 255, 0 ) ■ ( 0, 0, 255 ) ■ ( 255, 255, 0 ) ■ ( 0, 255, 255 ) ■ ( 255, 0, 255 ) ■ ( 255, 255, 255 ) ■ ( 255, 128, 0 ) ■ ( 128, 24, 160 ) ■ ( 60, 128, 32 ) ■ ( 128, 128, 128 ) ・ 色のグラデーション 色指定のパラメータを繰り返し(for文)と組み合わせて「色のグラデーション」を作ります。 基本的な方法は 0.0~1.0 の範囲で変化する変数を用意して 0~255 に変換した値を用います。 <黒色 --> 白色 のグラデーションを描画>
<白色 --> 黒色 のグラデーションを描画>
<黄色 --> 青色 のグラデーションを描画>
<演習1> 下図を描画しなさい。 Windowのサイズは 400x400 幅8、高さ400の長方形を50個描画する 色は左端が青色、右端が黄色のグラデーション 解答例 |
2 アニメーション |
Processingでは、動きのある描画(アニメーション)が簡単に作成できます。 ・ setup() 関数と draw() 関数 アニメーションのプログラムに必要な記述があります。 setup() 関数・・・プログラム実行開始時に1度だけ呼び出される(変数の初期化などを行う) draw() 関数・・・プログラムが実行されている間は、自動的に繰り返しシステムから呼び出される デフォルトの設定では1秒間に60回実行される(FPS=60) 特別な変数 frameCount に、draw()が実行された回数が随時格納される < frameCount をコンソールに表示する>
アニメーション処理は、draw() 関数に1フレームごとの描画処理を記述することにより実現する 1フレームごとに、少しずつ描画位置を移動する、形を変化させるなどの操作で、動きを表現する <例:〇が左から右に移動する>
1秒間に、x は 60増加することになる <実行結果> <演習2> 上記のプログラムを、「〇が右端から左方向へ移動する」ように修正しなさい。 解答例 <例:〇が少しずつ大きくなる>
<例:〇の色が 黒色-->白色 に少しずつ変化する>
<実行例の動画> <演習3> 上記のプログラムを、「〇の色が 黒色-->白色-->黒色-->白色・・」のように繰り返すように修正しなさい。 <実行例の動画> ヒント) 条件分岐(if文)を使う int flag;を追加し「黒-->白」は flag=0、「白-->黒」は flag=1 として、2つの処理を切り替える または float dir; を追加して、1.0 or -1.0 を入れ替えてdegの増減を制御する、など 解答例 |