GLSCマニュアル
2009/7/2 00:00
本マニュアルはGLSCの開発者の一人である、亮さんに許可を得た上、新関数のマニュアルを付け加えました。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通りの描画単位があります,これらの描画単位は,次のような属性を持っています.
線 | 色,太さ,種類 |
塗りつぶし | 色 |
マーカー | 色,大きさ,種類 |
テキスト | 色,フォント(大きさ) |
線 | 色=黒,太さ=0,種類=0(実線) |
塗りつぶし | 色=白 |
マーカー | 色=黒,大きさ=5,種類=0 |
テキスト | 色=黒,フォント=2(大きさ) |
g_init( … ); | 初期化 | |
g_device( … ); | 出力先の指定 | |
g_def_scale( … ); | ||
・ | ||
・ | スケールの定義 | |
・ | ||
g_def_scale( … ); | ||
g_def_line( … ); | ||
・ | ||
・ | 属性セット定義 | |
・ | ||
g_def_text( … ); | ||
g_cls( ); | ||
・ | 1フレーム目 | |
・ | 描画 | |
・ | ||
g_cls( ); | ||
・ | 2フレーム目 | |
・ | 描画 | |
・ | ||
g_cls( ); | ||
g_cls( ); | ||
・ | 最終フレーム | |
・ | 描画 | |
・ | ||
g_term( ); | 終了 |
本演習では次のシェルスクリプトを利用します.
fglsc : FORTRAN用
cglsc : C用
作成した FORTRANプログラムを fsample.f とすると、
fglsc fsample.f
作成した C プログラムを csample.c とすると、
cglsc csample.c
でそれぞれコンパイルされ、 fsample および csample という実行ファイルが生成されます.
g_def_scale | 標準面上に仮想座標系を定義する . |
g_sel_scale | 仮想座標系を選択する. |
g_line_color | 線の色を変更する(8色). |
g_line_width | 線の太さを変更する. |
g_line_type | 線の種類を変更する. |
g_area_color | 塗りつぶしの色を変更する(8色). |
g_marker_color | マーカーの色を変更する(8色). |
g_marker_size | マーカーの大きさを変更する. |
g_marker_type | マーカーの種類を変更する. |
g_text_color | テキストの色を変更する(8色). |
g_text_font | テキストのフォントを変更する. |
g_def_line | 線の属性セットを定義する. |
g_def_area | 塗りつぶしの属性セットを定義する. |
g_def_marker | マーカーの属性セットを定義する. |
g_def_text | テキストの属性セットを定義する. |
g_sel_line | 線の属性セットを選択する. |
g_sel_area | 塗りつぶしの属性セットを選択する. |
g_sel_marker | マーカーの属性セットを選択する. |
g_sel_text | テキストの属性セットを選択する. |
g_move | カレントポジションを移動する. |
g_plot | カレントポジションから指定された点まで線分を引くする. |
g_box | 長方形を描いたり,中を塗りつぶしたりする. |
g_circle | 円を描いたり,中を塗りつぶしたりする. |
g_polygon | 多角形を描いたり,中を塗りつぶしたりする. |
g_polyline | 与えられた点列を線分で連続的に結ぶ. |
g_data_plot | 与えられた配列を用いてグラフを描く. |
g_marker | マーカーを描く. |
g_arrow | 矢印を描く. |
g_fan | 扇形を描いたり、中を塗りつぶしたりする. |
g_text | 文字列をかく.(標準座標系) |
g_contln | 等高線を描く. |
g_contln_3d | z-スタックされた等高線を描く. |
g_contln_3d_f | z-スタックされた等高線を描く.(C言語のみ) |
g_bird_view | z=f(x,y)のグラフの鳥瞰図を隠線処理せずに描く. |
g_hidden | z=f(x,y)のグラフの鳥瞰図を隠線処理して描く. |
g_fake_bird_view | z=f(x,y)のグラフの鳥瞰図もどきを隠線処理せずに描く. |
g_fake_hidden | z=f(x,y)のグラフの鳥瞰図もどきを隠線処理して描く. |
g_sleep | 描画後,絵を消さずに表示する. |
g_sformat | 変数を指定された書式で表わし文字列として返す. |
g_mouse_sence | ウインドウ内のマウスの位置を取得する. |
g_get_window_id | X Window SystemにおけるX Window idを取得する. |
g_rgb_color | 256*256*256の色空間を構成する. |
g_capture_set | 画面取り込みのための準備の行う. |
g_capture | 画面取り込みを行う. |
g_area_color | 塗りつぶしの色を変更する(8色). |
g_arrow | 矢印を描く. |
g_bird_view | z=f(x,y)のグラフの鳥瞰図を隠線処理せずに描く. |
g_box | 長方形を描いたり,中を塗りつぶしたりする. |
g_capture_set | 画面取り込みのための準備の行う. |
g_capture | 画面取り込みを行う. |
g_circle | 円を描いたり,中を塗りつぶしたりする. |
g_cls | 新しいフレームを用意する. |
g_contln | 等高線を描く. |
g_contln_3d | z-スタックされた等高線を描く. |
g_contln_3d_f | z-スタックされた等高線を描く.(C言語のみ) |
g_data_plot | 与えられた配列を用いてグラフを描く. |
g_def_area | 塗りつぶしの属性セットを定義する. |
g_def_line | 線の属性セットを定義する. |
g_def_marker | マーカーの属性セットを定義する. |
g_def_scale | 標準面上に仮想座標系を定義する . |
g_def_text | テキストの属性セットを定義する. |
g_device | 出力先を指定・変更する. |
g_fake_bird_view | z=f(x,y)のグラフの鳥瞰図もどきを隠線処理せずに描く. |
g_fake_hidden | z=f(x,y)のグラフの鳥瞰図もどきを隠線処理して描く. |
g_fan | 扇形を描いたり、中を塗りつぶしたりする. |
g_hidden | z=f(x,y)のグラフの鳥瞰図を隠線処理して描く. |
g_polygon | 多角形を描いたり,中を塗りつぶしたりする. |
g_polyline | 与えられた点列を線分で連続的に結ぶ. |
g_line_color | 線の色を変更する(8色). |
g_line_width | 線の太さを変更する. |
g_marker | マーカーを描く. |
g_marker_color | マーカーの色を変更する(8色). |
g_marker_size | マーカーの大きさを変更する. |
g_marker_type | マーカーの種類を変更する. |
g_mouse_sence | ウインドウ内のマウスの位置を取得する. |
g_move | カレントポジションを移動する. |
g_plot | カレントポジションから指定された点まで線分を引くする. |
g_sel_area | 塗りつぶしの属性セットを選択する. |
g_sel_line | 線の属性セットを選択する. |
g_sel_marker | マーカーの属性セットを選択する. |
g_sel_scale | 仮想座標系を選択する. |
g_sel_text | テキストの属性セットを選択する. |
g_sformat | 変数を指定された書式で表わし文字列として返す. |
g_sleep | 描画後,絵を消さずに表示する. |
g_term | グラフィックスを終了する. |
g_text | 文字列をかく.(標準座標系) |
g_text_color | テキストの色を変更する(8色). |
g_text_font | テキストのフォントを変更する. |
g_init
file_name 文字列 メタファイル名
length 整数 file_name の文字数 (FORTRANでの利用時のみ必要 )
size_x 実数 ディスプレイ上に開くウインドウの 横方向のサイズ( mm )
size_y 実数 ディスプレイ上に開くウインドウの 縦方向のサイズ( mm )
GLSCを使う上で絶対に必要な関数です.必ずGLSCの関数を使う前にコールして下さい.メタファイルに出力しない場合でも何らかのダミーのファイル名を書くこと.ウインドウに出力しない場合でも何らかのダミーのウインドウサイズを書くこと.
g_device
device 整数 グラフィックデータの出力先を指定する番号
device 出力先 番号 マクロ 0 G_NONE なし 1 G_META メタファイルのみ 2 G_DISP ディスプレイのみ 3 G_BOTH メタファイルとディスプレイ
g_cls
g_def_scale
g_line_color
g_move
g_contln
g_sleep
g_sformat
変数を指定された書式で表わし文字列として返す(FORTRANのみ)
例 call g_sformat(string, length, 'x = %f', x) C言語では、次のようになる. sprintf(string, "x = %f", x); 注意 format の中には %
は必ず1つあり、かつ2つ以上あってはならない g_mouse_sence
注意 他の描画関数と同様に仮想座標系を指定して使う必要がある。 C言語での例
double mouseX, mouseY; g_get_window_id
C言語での例
int window_id; g_rgb_color
g_capture_set
g_capture
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
scale 整数 スケール番号
属性コントロール関数
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
width 整数 線の太さを表す番号
通常は0から3までの整数を用いる.あまり太すぎる線は,描画に時間がかかる.0と1では線の太さは変わらないが,0が最も描画が速い.
g_line_type
type 整数 線種を表す番号
type 線種 番号 マクロ 0 G_LINE_SOLID 1 G_LINE_DOTS 2 G_LINE_DASHED 3 G_LINE_LONG_DASHED 4 G_LINE_THIN_DOTS 5 G_LINE_DOT_DASHED 6 G_LINE_D_DOT_DASHED
g_area_color
color 整数 色(パターン)番号
g_marker_color
color 整数 色(パターン)番号
g_marker_size
size 整数 マーカーの大きさを表す番号
マーカーの大きさはだいたい直径size mm ぐらいである.size=0の時のマーカーはポイントになる.
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
color 整数 色(パターン)番号
色番号と色の対応は線の場合と同じである.
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
line 整数 属性セット番号 color 整数 色(パターン)番号 width 整数 線の太さを示す数 type 整数 線種番号
g_def_area
area 整数 属性セット番号 color 整数 色(パターン)番号
属性セットといっても,この場合は属性は1つだけである.
g_def_marker
marker 整数 属性セット番号 color 整数 色(パターン)番号 size 整数 マーカーのだいたいの直径(mm) type 整数 マーカー番号
g_def_text
g_sel_line
line 整数 線の属性セット番号
g_sel_area
area 整数 ぬりつぶしの属性セット番号
g_sel_marker
marker 整数 マーカーの属性セット番号
g_sel_text
text 整数 テキストの属性セット番号
描画関数
x 実数 移動先の点のカレント座標系におけるx座標を表す y 実数 移動先の点のカレント座標系におけるy座標を表す
g_plot
x 実数 指定点のカレント座標系におけるx座標を表す y 実数 指定点のカレント座標系におけるy座標を表す
ここでいうカレントポジションという概念は,g_move, g_plotだけに関与したものであり,他の描画関数には影響を受けない.
g_box
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
x 実数 円の中心のカレント座標系におけるx座標 y 実数 円の中心のカレント座標系におけるy座標 radius 実数 円の半径をx座標方向のスケールで表したもの edge 整数 G_YESのとき縁を描き,G_NOのときには描かない fill 整数 G_YESのとき枠内をぬり,G_NOのときにはぬらない
g_polygon
x 実数列 多角形の頂点のカレント座標系におけるx座標からなる実数値配列 y 実数列 多角形の頂点のカレント座標系におけるy座標からなる実数値配列 n 整数 多角形の頂点数(n ≦ 256) edge 整数 G_YESのとき縁を描き,G_NOのときには描かない fill 整数 G_YESのとき枠内をぬり,G_NOのときにはぬらない
配列x,yのサイズはn以上でなくてはならない.
g_polyline
x 実数列 カレント座標系におけるx座標の実数値配列 y 実数列 カレント座標系におけるy座標の実数値配列 n 整数 点列を構成する点の数
配列x,yのサイズはn以上でなくてはならない.
g_data_plot
x_left 実数 カレント座標系におけるx軸の左端の座標 x_right 実数 カレント座標系におけるx軸の右端の座標 y 実数列 カレント座標系におけるy軸の実数値配列 n 整数 データ数
配列yのサイズはn以上でなければならない.この関数はx方向の分割幅が一定の時としてグラフの描画を行う.
g_marker
x 実数 マーカーの中心点のカレント座標におけるx座標 y 実数 マーカーの中心点のカレント座標におけるy座標
g_arrow
base_x 実数 矢印の根元のカレント座標におけるx座標 base_y 実数 矢印の根元のカレント座標におけるy座標 direction_x 実数 矢印のx-方向 direction_y 実数 矢印のy-方向 arrow_size 実数 矢印の長さ head_size 実数 矢印の頭の大きさ
g_fan
center_x 実数 扇形の根元のカレント座標におけるx座標 center_y 実数 扇形の根元のカレント座標におけるy座標 direction_x 実数 扇形のx-方向 direction_y 実数 扇形のy-方向 radius 実数 扇形の半径 angle 実数 扇形の開き角度(度数法) edge 整数 G_YESのとき縁を描き,G_NOのときには描かない fill 整数 G_YESのとき枠内をぬり,G_NOのときにはぬらない
図を参照.
g_marker
x 実数 マーカーの中心点のカレント座標におけるx座標 y 実数 マーカーの中心点のカレント座標におけるx座標
g_text
x_std 実数 文字列の先頭文字の左下端の位置の標準x座標 y_std 実数 文字列の先頭文字の左下端の位置の標準y座標 string 文字列 描こうとしているテキストの入った文字列
上位関数
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_contln_3d
x_0 実数 枠となる直方体の底辺のカレント座標におけるx座標 x_1 実数 枠となる直方体の上辺のカレント座標におけるx座標 y_0 実数 枠となる直方体の底辺のカレント座標におけるy座標 y_1 実数 枠となる直方体の上辺のカレント座標におけるy座標 z_0 実数 枠となる直方体の底辺のカレント座標におけるz座標 z_1 実数 枠となる直方体の上辺のカレント座標におけるz座標 array 実数列 等高線を描くためのサイズnumber_x・number_y・number_zの3次元実数値配列 number_x 整数 3次元配列arrayのx方向のサイズ number_y 整数 3次元配列arrayのy方向のサイズ number_z 整数 3次元配列arrayのz方向のサイズ height 実数 描きたい等高線のレベル
3次元のデータからhレベルの等高線をz0からz1への方向へ積み重ねて表示する。ただしデータの格納形式がC言語形式に限る。通常、こちらの関数を使えばよい。この関数を使って表示が乱れるときは、配列のアドッレシングの問題である可能性がある。その場合はg_contln_3d_fを使用するとよい。Fortran言語を使用する場合、この関数を使えば良い。
図を参照.
g_contln_3d_f
x_0 実数 枠となる直方体の底辺のカレント座標におけるx座標 x_1 実数 枠となる直方体の上辺のカレント座標におけるx座標 y_0 実数 枠となる直方体の底辺のカレント座標におけるy座標 y_1 実数 枠となる直方体の上辺のカレント座標におけるy座標 z_0 実数 枠となる直方体の底辺のカレント座標におけるz座標 z_1 実数 枠となる直方体の上辺のカレント座標におけるz座標 array 実数列 等高線を描くためのサイズnumber_x・number_y・number_zの1次元実数値配列 number_x 整数 3次元配列arrayのx方向のサイズ number_y 整数 3次元配列arrayのy方向のサイズ number_z 整数 3次元配列arrayのz方向のサイズ height 実数 描きたい等高線のレベル
1次元のデータからhレベルの等高線をz0からz1への方向へ積み重ねて表示する。
ただしデータの格納形式がFortran形式に限る。この関数はFortranからは呼ぶことができない(呼ぶ必要がない)。多次元配列を構成する場合、C言語のデータの格納方式は効率的でないことが多い。そこでC言語のプログラムであってもデータ形式をFortran形式のデータ配列形式にする場合もある。そのような場合、こちらの関数を使うと良い。またg_contln_3dに比べ使用メモリを大幅に押さえることができる。
図を参照.
g_bird_view
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_hidden
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_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_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軸方向の描線の間隔
図を参照.
補助関数
time 実数 絵を消さずに表示することを保証する時間( 秒 )
この関数がコールされるまでに描かれるべき絵の描画が完了してから,time 秒間絵を表示する.もちろん,g_clsやg_termをコールすることにより,描かれた絵を消さない限りは,time秒間を過ぎても絵は表示され続ける.
timeが負の数の場合は絵が表示されているウインドウ内でマウスボタンをクリックされるまでは絵は表示され続ける.
string 文字列 variable を format
に従って書き表した結果が返される文字列
length 整数 上記文字列の長さが返される
format 文字列 variable
を表現するための書式からなる文字列(書式指定は
C言語に従う) variable 不定 変数(型は特に指定しない)
これは FORTRAN にのみ必要な関数で、C言語であれば sprintf を使えばよい.GLSCにおいては通常 g_text とともに用いられる.
call g_text(50.0, 50.0, string, length)
g_text(50.0, 50.0, string);
mouseX 実数 マウスのx座標 mouseY 実数 マウスのy座標 BUTTON 整数 マウスのボタンの状態。
ウィンドウ内をクリックすることにより、その仮想座標系における位置を(mouseX,mouseY)に格納する。またマウスの状態をBUTTONに格納する。左クリックはBUTTON=1,中クリックはBUTTON=2,右クリックはBUTTON=3である。
int BUTTON = 0;
while(1){
g_mouse_sence (&mouseX, &mouseY, &BUTTON);
printf("mouseX = %f,mouseY = %f,BUTTON =%d\n",mouseX,mouseY,BUTTON);
if(BUTTON == 1){
break;
}
}
window_id 整数 X Window SystemにおけるX Window id.
X Window SystemではX Windowに固有のX Window id を割り振っている。この値を取得する関数である(関数内でxwininfoコマンドを呼んでいる)。GLSCではX Window の名前として"GLSC"という名前を使用している。この名前によってGLSCのプログラムであることがわかる。xwd(X Window System標準のX Windowキャプチャ関数)やimport(ImageMagickに付属するキャプチャ関数)などのキャプチャ関数を使ってX Windowの画面をキャプチャすることができるがその際X Windowの名前を引数にする。GLSCはすべてのX Windowに"GLSC"を名前として使うが、この状態は多数のX Windowを開いた状態で画面キャプチャを行った場合、衝突を起こす。そこでX Windowに固有のX Window idを画面キャプチャ関数の引数としてつかうと衝突をさけることができる。この関数はg_capture_set内で使われている。通常の使用であれば、この関数をつかうことは滅多にない。
g_get_window_id(&window_id);
printf("Window ID(base16): %x\n", window_id);
printf("Window ID(base10): %d\n", window_id);
red 実数 赤の明度 green 実数 緑の明度 blue 実数 青の明度
(red,green,blue)の値から色空間を構成する。各要素は0~1までの実数値である。
*
*
g_area_color(G_RED);
*
*
というプログラムは
*
*
g_area_color(g_rgb_color(1.0,0.0,0.0));
*
*
と同値である。
Rainbow.c
と組み合わせて使うことで、温度分布色などを作ることができる。
画面を取り込むための準備をするための関数である。この関数は内部で、X Window IDの取得、連番画像ファイルの初期化、保存先フォルダの作成(""の場合にのみFrames年.月.日.時間.分.秒/というフォルダ名になる)、保存する画像の拡張子(.jpg)の設定を行う。
g_init("GRAPH", 100.0, 100.0);
g_device(G_DISP);
g_capture_set("Frames");
g_device関数より後、g_capture関数より前に呼ぶ必要がある。ImageMagick(http://www.imagemagick.org/)をインストールしている必要がある。
画面を取り込むための関数である。呼ばれるたびに、g_capture_set()にて設定されたフォルダに画像を連番ファイル(000000.jpg~999999.jpg)として保存する。
*
*
g_capture_set();
*
*
/*何か絵を描くプログラム*/
g_capture_set();
*
*
g_capture_set関数より後に呼ぶ必要がある。ImageMagick(http://www.imagemagick.org/)をインストールしている必要がある。
なお新関数の詳細についてはサンプルプログラムを参照されたい。GLSCのコンパイル時にtestフォルダーができるがその中に書かれている場合がある。(3.7.4以降のバージョン) またはglsc-X.Y.Z/Manual/NewFunctionHowToというフォルダ内にあるかもしれない。そこではg_capture,g_rgb_color,Rainbowなどのサンプルプログラムを読むことができる。NewFunctionHowTo.zipはそのzip化ファイルである。(2009.7.2 秋山正和.新関数群について加筆)