GLSCマニュアル

2002/12/17 17:53


 本マニュアルは早稲田大学高橋大輔研究室にて開発された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_initをコールしたときのデフォルト値は,以下のようです。
色=黒,太さ=0,種類=0(実線)
塗りつぶし色=白
マーカー色=黒,大きさ=5,種類=0
テキスト色=黒,フォント=2(大きさ)
属性のコントロールは,以上のようですが,上位関数を用いる場合のみ,カレント属性を無視しますし,カレント属性に影響を与えません。


g_term グラフィックスを終了する
スケール関数

g_def_scale 標準面上に仮想座標系を定義する


g_sel_scale 仮想座標系を選択する
属性コントロール関数

g_line_color 線の色を変更する


g_line_width 線の太さを変更する
  • 書式g_line_width ( width );

  • 入力パラメータ
    width 整数 線の太さを表す番号

  • 説明
    通常は0から3までの整数を用いる。あまり太すぎる線は,描画に時間がかかる。0と1では線の太さは変わらないが,0が最も描画が速い。

g_line_type 線の種類を変更する
  • 書式g_line_type ( type );

  • 入力パラメータ
    type 整数 線種を表す番号

    type線種
    番号マクロ
    0G_LINE_SOLID
    1G_LINE_DOTS
    2G_LINE_DASHED
    3G_LINE_LONG_DASHED
    4G_LINE_THIN_DOTS
    5G_LINE_DOT_DASHED
    6G_LINE_D_DOT_DASHED


g_area_color ぬりつぶしの色(パターン)を変更する
g_marker_color マーカーの色を変更する(8色)
g_marker_size マーカーの大きさを変更する
  • 書式g_marker_size ( size );

  • 入力パラメータ
    size 整数 マーカーの大きさを表す番号

  • 説明
    マーカーの大きさはだいたい直径size mm ぐらいである。size=0の時のマーカーはポイントになる。

g_marker_type マーカーの種類を変更する
  • 書式g_marker_type ( type );

  • 入力パラメータ
    type 整数 マーカー種を表す番号

    typeマーカー
    番号マクロ
    0G_MARKER_STAR
    1G_MARKER_CIRC
    -1G_MARKER_F_CIRC
    2G_MARKER_BOX
    -2G_MARKER_F_BOX
    3G_MARKER_TRIANGLE
    -3G_MARKER_F_TRIANGL
    4G_MARKER_PLUS
    -4G_MARKER_X×

  • 説明
    マーカーのsize=0の時のマーカーはポイントになるので,マーカー番号の意味は持たない。

g_text_color テキストの色を変更する(8色)
  • 書式g_text_color ( color );

  • 入力パラメータ
    color 整数 色(パターン)番号

  • 説明
    色番号と色の対応は線の場合と同じである。

g_text_font テキストのフォントを変更する
  • 書式g_text_font ( font );

  • 入力パラメータ
    font 整数 テキストのフォントを表す番号

    fontフォント
    番号マクロ
    0G_FONT_TIMES_8times 8
    1G_FONT_TIMES_12times 12
    2G_FONT_TIMES_18times 18
    3G_FONT_TIMES_24times 24


g_def_line 線の属性セットを定義する
  • 書式g_def_line ( line, color, width, type );

  • 入力パラメータ
    line 整数 属性セット番号
    color 整数 色(パターン)番号
    width 整数 線の太さを示す数
    type 整数 線種番号

g_def_areaぬりつぶしの属性セットを定義する
  • 書式g_def_area ( area, color );

  • 入力パラメータ
    area 整数 属性セット番号
    color 整数 色(パターン)番号

  • 説明
    属性セットといっても,この場合は属性は1つだけである。

g_def_marker マーカーの属性セットを定義する
  • 書式g_def_marker ( marker, color, size, type );

  • 入力パラメータ
    marker 整数 属性セット番号
    color 整数 色(パターン)番号
    size 整数 マーカーのだいたいの直径(mm)
    type 整数 マーカー番号

g_def_text テキストの属性セットを定義する
g_sel_line線の属性セットを選択する
  • 書式g_sel_line ( line );

  • 入力パラメータ
    line 整数 線の属性セット番号

g_sel_area ぬりつぶしの属性セットを選択する
  • 書式g_sel_area ( area );

  • 入力パラメータ
    area 整数 ぬりつぶしの属性セット番号

g_sel_marker マーカーの属性セットを選択する
  • 書式g_sel_marker ( marker );

  • 入力パラメータ
    marker 整数 マーカーの属性セット番号

g_sel_text テキストの属性セットを選択する
  • 書式g_sel_text ( 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意味
    数値マクロedgefill
    1G_YESふちを描中をぬる
    0G_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つ以上あってはならない