C言語でグラフィックス  
  【2】図形の描画と消去 次へ 

(2)ペンの設定(GWsetpen関数)

サンプルプログラム 〔gr202.c〕
 ペンを設定して、直線を描画する色と線の種類を変更する。

#include <GrWin.h>

int main(void)
{
    int width = 640, height = 400;

    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);
    GWsetpen(13, 1, 1, -1);        /* ペンの設定(赤色、実線) */
    GWline(50.0, 300.0, 150.0, 300.0);
    GWsetpen(16, 3, 1, -1);        /* ペンの設定(青色、点線) */
    GWline(100.0, 350.0, 100.0, 250.0);
    /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
    GWquit();
    return 0;
}

int GWsetpen(int 色番号,int 線種,int 線幅,int 混合モード);
 ペンを設定する。
色番号は、GWclear関数の論理色番号と同じ。
・線種は、次の番号で指定する。ただし、実線以外は線幅を1にしなければならない。
0:透明
 GWL_NULL
1:実線
 GWL_SOLID
2:破線
 GWL_DASH
3:点線
 GWL_DOT
4:1点鎖線
 GWL_DASHDOT
5:2点鎖線
 GWL_DASHDOTDOT
・線幅は、「論理デバイス座標系」で指定する。0を指定すると1ピクセル幅になる。
・混合モード(−1で4と同じ)は、次の番号で指定する。
0:GWX_NOP 1:GWX_BLACK 2:GWX_WHITE 3:GWX_NOT 4:GWX_COPYPEN
5:GWX_MASKPEN 6:GWX_MERGEPEN 7:GWX_XORPEN 8:GWX_NOTCOPYPEN 9:GWX_NOTMASKPEN
10:GWX_NOTMERGEPEN 11:GWX_NOTXORPEN 12:GWX_MASKNOTPEN 13:GWX_MASKPENNOT 14:GWX_MERGENOTPEN
15:GWX_MERGEPENNOT        

 

サンプルプログラム 〔gr203.c〕◆
 線の幅を変更する。線の幅を指定するとき、線種は実線だけとなる。

#include <GrWin.h>

int main(void)
{
    int width = 640, height = 400;

    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);
    GWline(100.0, 370.0, 110.0, 370.0);    /* 長さ10ドットの直線 */
    GWsetpen(13, 1, 10, -1);        /* ペンの設定(赤色、幅10) */
    GWline(50.0, 300.0, 150.0, 300.0);
    GWsetpen(16, 1, 20, -1);        /* ペンの設定(青色、幅20) */
    GWline(100.0, 350.0, 100.0, 250.0);
    /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
    GWquit();
    return 0;
}

 線幅を10と20に設定したが、線幅は長さ10ドットの直線と見比べてもそのようには見えない。
 ワールド座標系と線幅を指定する論理デバイス座標系は違うようである。


  次へ 
 Copyright © 2005 Hiroshi Masuda 

 

 

inserted by FC2 system