2005後期
情報グラフィックス論U
担当 鳥海有紀
授業資料 情報グラフィックス論U
戻る(ループ文の色々な使い方) 次へ(プログラムを書く3)

アニメーションへの応用

アニメーション、動く絵は少しずつ違う絵を一定の間隔で連続して描画することにより実現する。
少しずつ違う絵は制御文、つまりfor文とif文を使えばよい。 また連続して描画することもfor文で実現できる。
現在はCPUの性能非常に高く単純な2次元の絵を描画する時間は一瞬で動く絵として見ることができないくらい速い。 そこで一回描画が終わった後に適当な待ち時間を入れる。 今回は描画に影響しない計算を繰り返して待ち時間にする。


#include <stdio.h>
#include <math.h>

int main(void)
{
    int  i;
    int  x1, y1;
    int  x2, y2;
    int  dum;   /*  待ち時間のための変数  */
    int  j;     /*  待ち時間のためのカウンタ */

    gopen(200, 200);
    for (i=0; i < 180; i++) {
        gclear();
        x1 = 100 + 70 * cos(3.1415 / 180 * i);
        y1 = 100 + 70 * sin(3.1415 / 180 * i);
        x2 = 100 + 70 * cos(3.1415 / 180 * (i+180));
        y2 = 100 + 70 * sin(3.1415 / 180 * (i+180));

        gline(x1, y1, x2, y2, 255, 255, 255);
        
        /*  待ち時間 */
        for (j = 0; j < 20000; j++)
            dum = cos(j);
    }
    gclose();

    return 0;
}

待ち時間のためのループの回数は絵の動きをみて調整する。 待ち時間に使うループは2000000000回より大きくしないこと。

トップへ


授業資料 情報グラフィックス論U 戻る(ループ文の色々な使い方) 次に(プログラムを書く3)

Copyright 2002-2005 Yuki Toriumi