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

▼課題3 〔gr221.c〕

 ハッチの種類1から6までのサンプルを描画する。仕様は次図の通り、6,5,4,3,2,1の順に描画するものとする。

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

for()

◎四角形を描画する前にブラシを設定する GWsetbrs 関数でハッチを設定する。ハッチの番号はfor文で使った変数 n で指定する。色番号は変更しないので-1、ブラシ形状はハッチブラシ(=2)としておく。まとめて書くと次のようになる。

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

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

1つ目 x1 = 50 * 1 =  50   このとき、変数nは n=1 である。
2つ目 x1 = 50 * 2 = 100   このとき、変数nは n=2 である。
3つ目 x1 = 50 * 3 = 150   このとき、変数nは n=3 である。

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

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

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

x2 = 50 * (n + 0.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( ){
         ;
        ;
    }
    /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
    GWquit();
    return 0;
}

 

 前へ 次へ 
 Copyright © 2005 Hiroshi Masuda 

 

 

inserted by FC2 system