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 混合モード); |
0:透明 GWL_NULL |
1:実線 GWL_SOLID |
2:破線 GWL_DASH |
3:点線 GWL_DOT |
4:1点鎖線 GWL_DASHDOT |
5:2点鎖線 GWL_DASHDOTDOT |
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 |