C言語でグラフィックス 目次へ 
 前へ 課題2 色の種類 次へ 

▼課題2 〔gr220.c〕

 色番号0から19までのサンプルを描画する。仕様は次図の通りとする。

◎色番号が0から19まで連続しているので、for文の繰り返し処理で四角形を描画していく。変数にint型のnを使うとするとfor文は次のようになる。

for(n= ; ; )

◎四角形を描画する前にブラシを設定する GWsetbrs 関数で色を設定して四角形内部の塗りつぶようにする。色番号はfor文で使った変数 n で指定する。ブラシ形状は純色ブラシ(=1)、ハッチの種類は無効になるので1としておく。まとめて書くと次のようになる。

;    引数 → (色番号, 形状, ハッチ)

◎四角形を描画するには GWrect 関数を使う。四角形の左上の座標(x1,y1)と右下の座標(x2,y2)を指定して描画する。y1の座標は 380 、y2の座標は 280 である。
 x1の座標は20, 40, 60,・・・と20ずつ増えているので、次のような式で計算することができる。

1つ目 x1 = 20 * 1 = 20   このとき、変数nは n=0 である。
2つ目 x1 = 20 * 2 = 40   このとき、変数nは n=1 である。
3つ目 x1 = 20 * 3 = 60   このとき、変数nは n=2 である。

 したがって、変数nを使った一般的な式にすると次のようになる。

x1 =    → 座標は実数で指定するので20.0*((float)n+1.0)となる。

 x2の座標は示されていないが、x2=20*(n+2)とすると隣の四角形とくっつくので、少し隙間を空けるために次のような式で計算する。

x2 = 20 * (n + 1.8)

#include <GrWin.h>
 
int main(void)
{
    int    width = 640, height = 400;
    int    n;
 
    GWopen(0);
    GWsize(-5, &width, &height);
    GWsize(-3, NULL, NULL);
    GWvport(0.0, 0.0, (float)width / (float)height, 1.0);
    GWindow(0.0, 0.0, (float)width - 1.0, (float)height - 1.0);
    /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
    GWclear(-1);
    for(n = 0; ; ++n){
        GWsetbrs  ;    /* n番の色設定 */
        ;
    }
    /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
    GWquit();
    return 0;
}

 

 前へ 次へ 
 Copyright © 2005 Hiroshi Masuda 

 

 

inserted by FC2 system