本マニュアルは早稲田大学高橋大輔研究室にて開発されたWindows版GLSC(glscwin)
のマニュアルを元に許可を得た上作成しました。glscwin
にはあるが X Window 版の GLSC
には無い機能の説明を取り除いてあります。glscwin
を使いたい人は、オリジナルのマニュアルを参照してください。
GLSCにおいては,描画は標準面というものに対して行われます。この標準面は,1辺が655.35mmの正方形の白い紙だと思って下さい。そしてこの紙は,メモリ等が続く限り好きなだけ用意されます。以下では,この白い紙を1フレームと呼ぶことにします。このフレームを呼び出すのがg_clsと言う関数で,コールすると1フレームが用意され描画可能状態になります。このフレームの描画が終わって,次のフレームいくときにはg_clsを再度コールします。座標系は,2種類あり,左上頂点を(0.00,0.00)とし,右下頂点を(655.35,655.35)とする標準座標系と,g_def_scaleで定義する仮想座標系です。通常,描画には標準座標系を用いる事はありませんが,テキスト出力の時は,例外で標準座標系を用いますのでご注意下さい。通常,描画に用いる仮想座標系はg_def_scaleで標準面上にユーザーが定義する座標系で同時に50個まで定義できます。
GLSCには,線,塗りつぶし,マーカー,テキストの4通りの描画単位があります,これらの描画単位は,次のような属性を持っています。
グラフィックスを終了する
スケール関数
g_def_scale 標準面上に仮想座標系を定義する
- 書式g_def_scale ( scale, x_left, x_right, y_bottom, y_top, x_left_std,
y_top_std, x_wid_std, y_wid_std );
- 入力パラメータ
scale | 整数 | スケール番号。50個まで仮想座標系を 導入することができる。( 0 ≦ scale ≦ 49 ) |
x_left | 実数 | 長方形の左辺の仮想座標系におけるx座標 |
x_right | 実数 | 長方形の右辺の仮想座標系におけるx座標 |
y_bottom | 実数 | 長方形の下辺の仮想座標系におけるy座標 |
y_top | 実数 | 長方形の上辺の仮想座標系におけるy座標 |
x_left_std | 実数 | 長方形の左辺の標準x座標 |
y_top_std | 実数 | 長方形の上辺の標準y座標 |
x_wid_std | 実数 | 長方形の標準面上でのx軸方向の幅 |
y_wid_std | 実数 | 長方形の左辺の標準y軸方向の幅 |
- 説明
下図のように適当な長方形を考えて,上記描くパラメータを定めることにより仮想座標系を決める。
g_sel_scale 仮想座標系を選択する
- 書式g_sel_scale ( scale );
- 入力パラメータ
属性コントロール関数
g_line_color 線の色を変更する
- 書式g_line_color ( color );
- 入力パラメータ
color | カラーディスプレイ |
番号 | マクロ |
0 | G_BLACK | 黒 |
1 | G_RED | 赤 |
2 | G_GREEN | 緑 |
3 | G_BLUE | 青 |
4 | G_MAGENTA | マゼンタ |
5 | G_YELLOW | 黄 |
6 | G_CYAN | シアン |
7 | G_WHITE | 白 |
g_line_width 線の太さを変更する
- 書式g_line_width ( width );
- 入力パラメータ
- 説明
通常は0から3までの整数を用いる。あまり太すぎる線は,描画に時間がかかる。0と1では線の太さは変わらないが,0が最も描画が速い。
g_line_type 線の種類を変更する
g_area_color ぬりつぶしの色(パターン)を変更する
- 書式g_area_color ( color );
- 入力パラメータ
g_marker_color マーカーの色を変更する(8色)
- 書式g_markere_color ( color );
- 入力パラメータ
g_marker_size マーカーの大きさを変更する
- 書式g_marker_size ( size );
- 入力パラメータ
- 説明
マーカーの大きさはだいたい直径size mm ぐらいである。size=0の時のマーカーはポイントになる。
g_marker_type マーカーの種類を変更する
- 書式g_marker_type ( type );
- 入力パラメータ
type | マーカー |
番号 | マクロ |
0 | G_MARKER_STAR | * |
1 | G_MARKER_CIRC | ○ |
-1 | G_MARKER_F_CIRC | ● |
2 | G_MARKER_BOX | □ |
-2 | G_MARKER_F_BOX | ■ |
3 | G_MARKER_TRIANGLE | △ |
-3 | G_MARKER_F_TRIANGL | ▲ |
4 | G_MARKER_PLUS | + |
-4 | G_MARKER_X | × |
- 説明
マーカーのsize=0の時のマーカーはポイントになるので,マーカー番号の意味は持たない。
g_text_color テキストの色を変更する(8色)
- 書式g_text_color ( color );
- 入力パラメータ
- 説明
色番号と色の対応は線の場合と同じである。
g_text_font テキストのフォントを変更する
- 書式g_text_font ( font );
- 入力パラメータ
font | フォント |
番号 | マクロ |
0 | G_FONT_TIMES_8 | times 8 |
1 | G_FONT_TIMES_12 | times 12 |
2 | G_FONT_TIMES_18 | times 18 |
3 | G_FONT_TIMES_24 | times 24 |
g_def_line 線の属性セットを定義する
- 書式g_def_line ( line, color, width, type );
- 入力パラメータ
line | 整数 | 属性セット番号 |
color | 整数 | 色(パターン)番号 |
width | 整数 | 線の太さを示す数 |
type | 整数 | 線種番号
|
g_def_areaぬりつぶしの属性セットを定義する
- 書式g_def_area ( area, color );
- 入力パラメータ
- 説明
属性セットといっても,この場合は属性は1つだけである。
g_def_marker マーカーの属性セットを定義する
- 書式g_def_marker ( marker, color, size, type );
- 入力パラメータ
marker | 整数 | 属性セット番号 |
color | 整数 | 色(パターン)番号 |
size | 整数 | マーカーのだいたいの直径(mm) |
type | 整数 | マーカー番号
|
g_def_text テキストの属性セットを定義する
- 書式g_def_text ( text, color, font );
- 入力パラメータ
g_sel_line線の属性セットを選択する
- 書式g_sel_line ( line );
- 入力パラメータ
g_sel_area ぬりつぶしの属性セットを選択する
- 書式g_sel_area ( area );
- 入力パラメータ
g_sel_marker マーカーの属性セットを選択する
- 書式g_sel_marker ( marker );
- 入力パラメータ
g_sel_text テキストの属性セットを選択する
- 書式g_sel_text ( text );
- 入力パラメータ
描画関数
g_move カレントポジションを移動する
- 書式g_move ( x, y );
- 入力パラメータ
x | 実数 | 移動先の点のカレント座標系におけるx座標を表す |
y | 実数 | 移動先の点のカレント座標系におけるy座標を表す |
g_plot カレントポジションから指定された点まで線分を引く
- 書式g_plot ( x, y );
- 入力パラメータ
x | 実数 | 指定点のカレント座標系におけるx座標を表す |
y | 実数 | 指定点のカレント座標系におけるy座標を表す |
- 説明
ここでいうカレントポジションという概念は,g_move, g_plotだけに関与したものであり,他の描画関数には影響を受けない。
g_box長方形を描いたり,中をぬりつぶしたりする
- 書式g_box ( x_left, x_right, y_bottom, y_top, edge, fill );
- 入力パラメータ
x_left | 実数 | 長方形の左辺のカレント座標系におけるx座標 |
x_right | 実数 | 長方形の右辺のカレント座標系におけるx座標 |
y_bottom | 実数 | 長方形の下辺のカレント座標系におけるy座標 |
y_top | 実数 | 長方形の上辺のカレント座標系におけるy座標 |
edge | 整数 | G_YESのとき縁を描き,G_NOのときには描かない。 |
fill | 整数 | G_YESのとき枠内をぬり,G_NOのときにはぬらない。 |
edge, fill | 意味 |
数値 | マクロ | edge | fill |
1 | G_YES | ふちを描 | 中をぬる |
0 | G_NO | ふちを描かない | 中をぬらない |
g_circle 円を描いたり,中を塗りつぶしたりする
- 書式g_circle ( x, y, radius, edge, fill );
- 入力パラメータ
x | 実数 | 円の中心のカレント座標系におけるx座標 |
y | 実数 | 円の中心のカレント座標系におけるy座標 |
radius | 実数 | 円の半径をx座標方向のスケールで表したもの |
edge | 整数 | G_YESのとき縁を描き,G_NOのときには描かない |
fill | 整数 | G_YESのとき枠内をぬり,G_NOのときにはぬらない
|
g_polygon 多角形を描いたり,中を塗りつぶしたりする。を書く
- 書式g_polygon ( x, y, n, edge, fill );
- 入力パラメータ
x | 実数列 | 多角形の頂点のカレント座標系におけるx座標からなる実数値配列 |
y | 実数列 | 多角形の頂点のカレント座標系におけるy座標からなる実数値配列 |
n | 整数 | 多角形の頂点数(n ≦ 256) |
edge | 整数 | G_YESのとき縁を描き,G_NOのときには描かない |
fill | 整数 | G_YESのとき枠内をぬり,G_NOのときにはぬらない |
- 説明
配列x,yのサイズはn以上でなくてはならない。
g_polyline 与えられた点列を線分で連続的に結ぶ
- 書式g_polyline ( x, y, n );
- 入力パラメータ
x | 実数列 | カレント座標系におけるx座標の実数値配列 |
y | 実数列 | カレント座標系におけるy座標の実数値配列 |
n | 整数 | 点列を構成する点の数 |
- 説明
配列x,yのサイズはn以上でなくてはならない。
g_data_plot 与えられた配列を用いてグラフを描く
- 書式g_data_plot ( x_left, x_right, y, n );
- 入力パラメータ
x_left | 実数 | カレント座標系におけるx軸の左端の座標 |
x_right | 実数 | カレント座標系におけるx軸の右端の座標 |
y | 実数列 | カレント座標系におけるy軸の実数値配列 |
n | 整数 | データ数 |
- 説明
配列yのサイズはn以上でなければならない。この関数はx方向の分割幅が一定の時としてグラフの描画を行う。
g_marker マーカーを描く
- 書式g_marker ( x, y );
- 入力パラメータ
x | 実数 | マーカーの中心点のカレント座標におけるx座標 |
y | 実数 | マーカーの中心点のカレント座標におけるx座標 |
g_text 文字列を書く(標準座標系)
- 書式g_text ( x_std, y_std, string );
- 入力パラメータ
x_std | 実数 | 文字列の先頭文字の左下端の位置の標準x座標 |
y_std | 実数 | 文字列の先頭文字の左下端の位置の標準y座標 |
string | 文字列 | 描こうとしているテキストの入った文字列
|
上位関数
g_contln 等高線を描く
- 書式g_contln ( x_left, x_right, y_bottom, y_top, array, number_x, number_y, height );
- 入力パラメータ
x_left | 実数 | 枠となる長方形の左辺のカレント座標におけるx座標 |
x_right | 実数 | 枠となる長方形の右辺のカレント座標におけるx座標 |
y_bottom | 実数 | 枠となる長方形の底辺のカレント座標におけるy座標 |
y_top | 実数 | 枠となる長方形の上辺のカレント座標におけるy座標 |
array | 実数列 | 等高線を描くためのサイズnumber_x・number_yの2次元実数値配列 |
number_x | 整数 | 2次元配列arrayのx方向のサイズ |
number_y | 整数 | 2次元配列arrayのy方向のサイズ |
height | 実数 | 描きたい等高線のレベル |
g_bird_view z=f(x,y)のグラフの鳥瞰図を隠線処理せずに描く
- 書式g_bird_view ( x_wid, y_wid, z_wid, z_bottom, z_top, distance, theta, phi, x_left_std, y_top_std, x_wid_std, y_wid_std, array, number_x, number_y, direction);
- 入力パラメータ
x_wid | 実数 | グラフがおさまる直方体のx方向の幅 |
y_wid | 実数 | グラフがおさまる直方体のy方向の幅 |
z_wid | 実数 | グラフがおさまる直方体のz方向の幅 |
z_bottom | 実数 | 直方体の底辺に対応するデータ値 |
z_top | 実数 | 直方体の上辺に対応するデータ値 |
distance | 実数 | 直方体の中心と視点との距離 |
theta | 実数 | xy平面において,視線をxy平面に写像した直線と,y軸がなす角(単位は度) |
phi | 実数 | xy平面と視線とがなす角(単位は度) |
x_left_std | 実数 | 点Aの標準x座標 |
y_top_std | 実数 | 点Aの標準y座標 |
x_wid_std | 実数 | 標準面上におけるADの長さ |
y_wid_std | 実数 | 標準面上におけるABの長さ |
array | 実数列 | グラフを描くためサイズnumber_x・number_yの実数値2次元配列 |
number_x | 整数 | 2次元配列arrayのx方向のサイズ |
number_y | 整数 | 2次元配列arrayのy方向のサイズ |
direction | 整数 | 正のときy軸正方向は遠ざかる方向,負のときy軸正方向は近づく方向 |
- 説明
図を参照。
g_hiddenz=f(x,y)のグラフの鳥瞰図を隠線処理して描く
- 書式g_hidden ( x_wid, y_wid, z_wid, z_bottom, z_top, distance, theta, phi, x_left_std, y_top_std, x_wid_std, y_wid_std, array, number_x, number_y, direction, side_paint,x_intv, y_intv);
- 入力パラメータ
x_wid | 実数 | グラフがおさまる直方体のx方向の幅 |
y_wid | 実数 | グラフがおさまる直方体のy方向の幅 |
z_wid | 実数 | グラフがおさまる直方体のz方向の幅 |
z_bottom | 実数 | 直方体の底辺に対応するデータ値 |
z_top | 実数 | 直方体の上辺に対応するデータ値 |
distance | 実数 | 直方体の中心と視点との距離 |
theta | 実数 | xy平面において,視線をxy平面に写像した直線と,y軸がなす角(単位は度) |
phi | 実数 | xy平面と視線とがなす角(単位は度) |
x_left_std | 実数 | 点Aの標準x座標 |
y_top_std | 実数 | 点Aの標準y座標 |
x_wid_std | 実数 | 標準面上におけるADの長さ |
y_wid_std | 実数 | 標準面上におけるABの長さ |
array | 実数列 | グラフを描くためサイズnumber_x・number_yの実数値2次元配列 |
number_x | 整数 | 2次元配列arrayのx方向のサイズ |
number_y | 整数 | 2次元配列arrayのy方向のサイズ |
direction | 整数 | 正のときy軸正方向は遠ざかる方向,負のときy軸正方向は近づく方向 |
side_paint | 整数 | 1と3のときは両側面ぬり,2と3のときは前後面をぬり,0のときはぬらない |
x_intv | 整数 | y軸方向の描線の間隔 |
y_intv | 整数 | x軸方向の描線の間隔
|
- 説明
図を参照。

g_fake_bird_view z=f(x,y)のグラフの鳥瞰図もどきを隠線処理せずに描く
- 書式g_fake_bird_view ( z_bottom, z_top, x_ratio, y_ratio, x_left_std, y_top_std, x_wid_std, y_wid_std, array, number_x, number_y, direction);
- 入力パラメータ
z_bottom | 実数 | z軸の下限の座標 |
z_top | 実数 | z軸の上限の座標 |
x_ratio | 実数 | BF/BC |
y_ratio | 実数 | BF/BC |
x_left_std | 実数 | 点Aの標準x座標 |
y_top_std | 実数 | 点Aの標準y座標 |
x_wid_std | 実数 | 標準面上におけるADの長さ |
y_wid_std | 実数 | 標準面上におけるABの長さ |
array | 実数列 | グラフを描くためサイズnumber_x・number_yの実数値2次元配列 |
number_x | 整数 | 2次元配列arrayのx方向のサイズ |
number_y | 整数 | 2次元配列arrayのy方向のサイズ |
direction | 整数 | 正のときy軸正方向は遠ざかる方向,負のときy軸正方向は近づく方向 |
- 説明
図を参照。
g_fake_hidden z=f(x,y)のグラフの鳥瞰図もどきを隠線処理して描く
- 書式g_fake_hidden ( z_bottom, z_top, x_ratio, y_ratio, x_left_std, y_top_std, x_wid_std, y_wid_std, array, number_x, number_y, direction, side_paint, x_intv, y_intv);
- 入力パラメータ
z_bottom | 実数 | z軸の下限の座標 |
z_top | 実数 | z軸の上限の座標 |
x_ratio | 実数 | BF/BC |
y_ratio | 実数 | BF/BC |
x_left_std | 実数 | 点Aの標準x座標 |
y_top_std | 実数 | 点Aの標準y座標 |
x_wid_std | 実数 | 標準面上におけるADの長さ |
y_wid_std | 実数 | 標準面上におけるABの長さ |
array | 実数列 | グラフを描くためサイズnumber_x・number_yの実数値2次元配列 |
number_x | 整数 | 2次元配列arrayのx方向のサイズ |
number_y | 整数 | 2次元配列arrayのy方向のサイズ |
direction | 整数 | 正のときy軸正方向は遠ざかる方向,負のときy軸正方向は近づく方向 |
side_paint | 整数 | 1と3のときは両側面ぬり,2と3のときは前後面をぬり,0のときはぬらない |
x_intv | 整数 | y軸方向の描線の間隔 |
y_intv | 整数 | x軸方向の描線の間隔
|
- 説明
図を参照。

上図の直方体の中にz=f(x,y)のグラフが描かれる。
補助関数
g_sleep 描画後,絵を消さずに表示する
- 書式g_sleep ( time );
- 入力パラメータ
time | 実数 | 絵を消さずに表示することを保証する時間( 秒 ) |
- 説明
この関数がコールされるまでに描かれるべき絵の描画が完了してから,time
秒間絵を表示する。もちろん,g_clsやg_termをコールすることにより,描かれた絵を消さない限りは,time秒間を過ぎても絵は表示され続ける。
timeが負の数の場合は絵が表示されているウインドウ内でマウスボタンをクリックされるまでは絵は表示され続ける。
g_sformat
変数を指定された書式で表わし文字列として返す(FORTRANのみ)
- 書式 call g_sformat(string, length, format,
variable)
- 出力パラメータ
string | 文字列 | variable を format
に従って書き表した結果が返される文字列 |
length | 整数 | 上記文字列の長さが返される |
- 入力パラメータ
format | 文字列 | variable
を表現するための書式からなる文字列(書式指定は
C言語に従う) |
variable | 不定 | 変数(型は特に指定しない) |
- 説明
これは FORTRAN にのみ必要な関数で、C言語であれば
sprintf を使えばよい。GLSCにおいては通常 g_text
とともに用いられる。
例
call g_sformat(string, length, 'x = %f', x)
call g_text(50.0, 50.0, string, length)
C言語では、次のようになる。
sprintf(string, "x = %f", x);
g_text(50.0, 50.0, string);
注意
format の中には %
は必ず1つあり、かつ2つ以上あってはならない