9.3 代表的な描画関数
pset 点を打つ
pset(win, x, y)
座標位置 (x, y) に点を打つ。x, y は実数型変数。
drawline 線を引く
drawline(win, x1, y1, x2, y2)
座標位置 (x1, y1) から (x2, y2) に向かって直線を描く。
moveto, lineto 線を引く
moveto(win, x, y) lineto(win, x, y)
moveto( ), lineto( ) 二つの関数を組み合わせて直線を描画する事ができる。例えば (x1, y1) から (x2, y2) に向けて線を引くときは以下のようにする。
moveto(win, x1, y1); lineto(win, x2, y2);
moveto( ) によってペンを移動し、そこから lineto( ) によって指定された位置までペンを運んだ、と考えればよい。
lineto( ) を繰り返して使う事で、連続して直線を描画する事ができる。例えば以下のようにすると、(x1, y1) - (x2, y2) - (x3, y3) をむすぶ折れ線を描く。
moveto(win, x1, y1); lineto(win, x2, y2); lineto(win, x3, y3);
drawrect 四角い枠を描く
drawrect(win, x, y, w, h)
座標位置 (x, y) から幅 w、高さ h の四角を描く。x, y, w, h いずれも実数型変数。
例:座標位置 (250, 120) を中心とした幅 20, 高さ 10 の長方形の枠を描く。
x=250.0; y=120.0; w=20.0; h=10.0; drawrect(win, x-(w/2.0), y-(h/2.0), w, h);
fillrect なかを塗りつぶした四角を描く
fillrect(win, x, y, w, h)
上に示した drawrect() 関数と使い方は同じ。違いは中を塗りつぶすかどうかだけ。
drawcirc 円を描く
drawcirc(win, x, y, w, h)
座標位置 (x, y) から横方向の半径 w 、高さ方向の半径 h の円を描く。x, y, w, h いずれも実数型変数。
例:座標位置 (250, 120) を中心とした横方向半径 20, 縦方向半径 10 の円を描く。
x=250.0; y=120.0; w=20.0; h=10.0; drawcirc(win, x, y, w, h);
fillcirc なかを塗り潰した円を描く
fillcirc(win, x, y, w, h)
座標位置 (x, y) から横方向の半径 w 、高さ方向の半径 h 範囲を円形で塗り潰す。x, y, w, h いずれも実数型変数。
例:座標位置 (250, 120) を中心として横方向半径 20, 縦方向半径 10 で塗り潰す。
x=250.0; y=120.0; w=20.0; h=10.0; fillcirc(win, x, y, w, h);
drawarc 円弧を描く
drawarc(win, x, y, w, h, s, e, d)
座標位置 (x, y) から横方向半径 w, 縦方向半径 h の弧を描く。その開始角度は s 度から e 度まで(0-360までの度を与える)。d が 1 なら左回りに描き、-1 なら右回りに描く。x, y, w, h, s, e は実数型変数。dのみ整数型。
例:右回りに 30 度から 60 度の位置に(30度ぶんの開き角となる)扇形を描く。
drawarc(win, x, y, w, h, 30.0, 60.0, -1);
fillarc なかを塗りつぶした円弧(扇形)を描く
fillarc(win, x, y, w, h, s, e, d)
上に示した drawarc() 関数と使い方は同じ。違いは中を塗りつぶすかどうかだけ。
drawpoly 多角形を描く
配列に格納した座標位置を頂点とする多角形を描く。
drawpoly(win, x, y, n)
x, y は多角形のX,Y座標数値をいれた実数型の配列変数であり、n は多角形の辺の数を指定する。
例えば 5 角形を描く場合は、x, y の配列変数を 5 要素確保し、n に 5 を指定する。
double x[5],y[5]; n=5; x[0]=10.2; y[0]=22.0; .... x[4]=123.0; y[4]=48.9; drawpoly(win, x, y, 5)
類似した fillpoly を用いたサンプルプログラムが fillpoly関数の説明にある。
fillpoly なかを塗りつぶした多角形を描く
上に示した drawpolly() 関数と使い方は同じ。違いは中を塗りつぶすかどうかだけ。
fillpoly(win, x, y, n, i)
x, y は多角形のX,Y座標数値をいれた実数型の配列変数であり、n は多角形の辺の数を指定する。i は整数型で、通常は 0 を指定する。(もし凸型、つまり凹型の凹みが無い)多角形と判っている場合は 1 を指定すると高速に描画できる場合がある。
例えば塗りつぶした 5 角形を描く場合は、x, y の配列変数を 5 要素確保し、n に 5 を指定する。
double x[5],y[5]; n=5; x[0]=10.2; y[0]=22.0; .... x[4]=123.0; y[4]=48.9; fillpoly(win, x, y, 5, 0)
(資料:サンプルプログラム poly1.c を参考にしてください)
線の幅を指定する
newlinewidth(win, w)
w は整数型で、drawline( ) や drawrect( ) などが図形を描画する際の線の太さを指定する。
初期値は 1 が設定されている。
線の種類を指定する
newlinestyle(win, s)
s は整数型で、drawline( ) や drawrect( ) などが図形を描画する際の線の種類を指定する。
現時点で与える事ができる値は LineSolid (実線) と LineOnOffDash (点線) の二種類。
初期値は LineSolid が設定されている。