Comments
Description
Transcript
GKS^Fg
GKS入門(2) G K S^Fg < 2 > 橋倉 聡.,浦川 伸治日,藤井 龍磨●,河津 秀利' 1. はじめに 前回は, GKSの概要について説明した【1].今後は例を用いた具体的な使用方法について説明 していく.今回の「入門(2) 」は,個別属性,座標変換について説明する. 2. GKSの開始と終了 GKSを使用するには, GKSを開始するための初期化を行い,さらに図形を出力させるサブ ルーチンを呼び出す前に,ワークステーション(GKSで使用する図形入出力装置)を出力可能 状態にしておく必要がある.また GKSの終了時にはワークステーションを使用不可能状態ま で戻し,終了処理を行う.これらのGKSの制御およびワークステーションの状態変更は必ず行 わなければならない.必要なサブルーチンを表2. 1に示す. 表2. 1 制御用サブルーチン 以下に使用例を示す. INTEGER ERRFIL, BUFA, WKID. CONID. WTYPE DATA ERRFIL/O/. BUFA/1/ DATA WKID/1/, CONID/1/, WTYPE/1/ CALL GOPKS (ERRFIL,BUFA) か CALL GOPWK (WKID.CONID,WTYPE) (訂 CALL GACWK (WKID) ③ 図形の出力 九州大学大型計算機センター 第二業務掛 同 第-業務掛 -729- 九州大学大型計算機センター広報 Vol.22 No.6 1989 解 説 CALL GCLtfK mid) ④⑤⑥ CALL GDAWK (WKID) CALL GCLKS STOP END ① GKSの開始を宣言し,初期化を行う.引数ERRFILはエラーメッセージを表示するエラー ファイルの論理機番である.使用にあたっては 0を指定する必要がある. BUFAはソース互換 を保証する引数で,整数であれば何を指定してもかまわない.なお,ワークステーションの状 態は,このサブルーチンを呼ぶ前と同じく使用不可能状態である. ② ワークステーションをオープンし,使用可能状態にする.引数wKIDは,ワークステーショ ンに割り当てるワークステーション名を整数で指定する. CONIDはワ一久ステーションと実装 置を接続する論理機番を指定する.使用にあたっては1を指定する必要がある. WTYPE は使用 可能にするワークステーションのワークステ-シ冒ン型を指定する.使用にあたっては1を指 定する必要がある. ③ 使用可能状態から出力可能状態へ変更する.このサブルーチンにより図形を出力できる状態 Ha** ④ 出力可能状態から使用可能状態へ変更する. ⑤ ワークステーションをクローズし,ワークステーションを使用不可能状態にする. ⑥ GKSの終了を宣言し終了処理を行なう. なお, ERRFIL.CONID,WTYPEの値が決まっているのは GKS85コマンドプロシジャおよびカタ ログドプロシジャにおいて,これらに対応するDD名の割当てを行なっているためである. また,ワークステーションに作図した後,クリアするサブルーチンがある. CALL GCLRWK (WKID.COFL) 引数COFLは消去モードを指定する. 0 (表示図形があるときのみ消去)か1 (常に消去)のど ちらかである.このサブルーチンはプI)ンタなどのワークステ-シぎンに複数枚出力するときは, 改頁として働く. 3. 属性 出力基本要素(プリミティブ)属性には幾何属性と非幾何属性がある.幾何属性とは,プリミ ティブの形に影響を与える属性で,非幾何属性は,プリミティブの見え方に影響を与える属性で ある.この2つの属性は,各プリミティブについて必ずしも存在するものではない. 出力基本要素属性の指定方法には,個別属性と束属性がある.個別属性は, GKSが保持して いる属性であり,幾何属性と非幾何属性が存在する.個別属性を指定するには,それぞれの属性 に対応する出力属性職能を使用する.個別属性を使用することにより,どのワークステーション でも同じようにプリミティブを出力できる.束属性は,ワークステーションが保持している属性 であり,非幾何属性のみが存在する.束属性を指定するには,どのプリミティブの,どの非幾何 属性について,使用するワークステーションのバンドルテーブル(束属性表)を参照するか(A S F :Aspect Source Flags)をサブルーチンGS AS Fで指定し,どのバンドルテーブルを参照 するかは,そのプリミティブのバンドルテーブルの番号(指標番号)を指定するサブルーチンで 指示する.束属性を使用することにより,同L:プリミティブでもワークステーションの種類が違 うと異な`るように出力することができる.束属性については次回に説明する.それでは,各プリ ミティブの個別属性について説明していく. 九州大学大型計夢機センター広報 Vol.22 No.6 1989 -730- GKS入門(2) 4. 個別属性 4. 1 折れ線(PくOLYLI NE) 出力可能なワークステーションに,指定された点を順に結んで折れ線を出力するプリミティブ である.折れ線には-非幾何属性のみが存在する.折れ線関連サブルーチンを表4. 1に示す. 表4. 1 折れ線関連サブルーチン 4. 1. 1 折れ線の出力 折れ線の出力にはサプル-チンGP Lを使用する.以下に呼び出し形式を示す. CALL GPL (N.PXA. PYA) 引数Nは折れ線の頂点数を指定する.指定有効な値は2以上である. PXA.PYAはそれぞれ,折 れ線の頂点のX座標値, Y座標値を格納している実数型配列名を指定する.このサブルーチンに より(PXA(l).PYA(l)).(PXA(2).PYA(2>).‥.,(PXA(N).PYA(N))の順に線で結んでいく.なお, PXA.PYAに指定する配列の大きさには制限はないが, Nで指定した座標値の入る大きさを用意し ておく必要がある. 4. 1. 2 折れ線指標 各プリミティブの非幾何属性は,束属性を使用することによりワークステーションが持つパン ドルテーブルによって一括指定,または必要なもののみを指定することができるが,この場合に, 参照する折れ線のバンドルテーブル番号(折れ線指標番号)を指定する属性である.折れ線指標 番号の指定は,サブルーチンGS PL Iによって行う.以下に呼び出し形式を示す. CALL GSPLI (PLI) 引数PLIに,参照する折れ線指標番号を指定する.指定した指標番号がない場合や,省略時は 1となる.本サブルーチンの指定を有効にするには, 3章で説明したように,サブルーチンGS AS Fで折れ線の,どの非幾何属性について束属性表を使用するかを指定する必要がある.他の プリミティブも同様であるが,サブルーチンGSA S Fで指定しない属性については,個別に指 定したものが有効となる. 4. 1. 3 線種 線の種類を指定する属性である.線種の指定は,サブルーチンGS LNによって行う.以下に 呼び出し形式を示す. CALL GSLN (LTYPE) 引数LTYPEに,表4. 2に示す線種の番号を指定する.省略値は1である.ただし,ワークス テーションによっては出力できないものもある. -731- 九州大学大型計算機センター広報 Vol.22 No.6 1989 解 説 表4. 2 線種定義表 LTYPE 付L 4 ・・5… 日日d田 -・… ..Iサ・弓 4. 1. 4 線幅倍率 線幅を決定する属性である.線幅倍率の指定は,サブルーチンGS LWS Cによって行う.以 下に呼び出し形式を示す. CALL GSLWSC (LWIDTH) 引数LWIDTHは,出力する線の幅の倍率を基準線幅に対する比率で指定する.ただし,ワークス テーションは指定した線幅を出力できないことがあり,この場合はワークステーションが持って いる線幅に一番近い線幅になる.指定有効な値は 0.0以上で, 0.0 を指定すると,ワークステー ションの持っているもっとも細い線幅になる.省略値は1.0である. 4. 1. 5 折れ線色指標 出力する線の色を指定する属性である.折れ線の色の指定は,サブルーチンGS PL C Iによ って行う.以下に呼び出し形式を示す. CALL GSPLCI (COLI) 色はワークステーションの色定義表を参照する.引数coLIは,この定義表の色指標番号を指定 する.省略値は1である. F6683Aカラーディスプレイの色定義表を表4. 3に示す. 表4. 3 F6683Aカラーディスプレイ色定義表 色 黒 緑 桃 赤 白 緑 ワークステーションの色定義表で, 0 は背景色, 1は前景色である.指定する色指標の値に制 限はないが,線を出力するワークステーションに指定した色指標がないときには, 1 (前景色) となる.例えば NLPの色定義表の0 は白, 1は黒であるが,色指標に 2以上の値を指定す ると,すべで黒で出力される.なお.折れ線に限らず他のプリミティブでも個別属性を使用して 色を指定する場合は,使用するワークステーションの色定義表を参照する. 4. 1. 6 折れ線を用いたプログラム例 線種,線幅,線の色,頂点数を変えて出力させるプログラムを示す. 0001 PROGRAM LINE O002 C 0003 INTEGER STAT, CHNR 0004 REAL X(5),Y(5),LS(4) 0005 C 0006 DATA X/0.1.0.3.0.5,0.7.0.9/ 九州大学大型計算機センター広報 Vol.22 No.6 1989 -732- GKS入門(2) M*l DATA Y/0.1,0.2,0.1.0.2,0.1/ WIH: DATA LS/1.0.3.0,1.0.3.0/ c 0009 0010 CALL GOPKS (0,1) 0011 CALL GOPWK (1.1.1) tin串 CALL GACWK (1) 119巨 c Hill DO 1 l=1,4 0015 CALL GSLN (I) 0016 CALL GSLWSC (LS(D) 0017 CALL GSPLCI (I) Xのa CALL GPL (I+l.X.Y) C Hill E 0020 DO 1 J=1.5 0021 Y(J) = Y(J)+0.2 1 CONT川UE 0022 0023 Oの引 C 0025 CALL GRQCH (1.1.STAT,CHNR) CALL GDAWK (1) 0026 CALL GCLWK (1) 0027 CALL GCLKS 嵩悶a STOP ・w*; OKBE END C (プログラムの説明) 0003 0004 必要な変数,配列を宣言する. 0006 - 0008 初期値を設定する. 0010 - 0012 GKSの初期化,およびワークステーションの状態変更を行う. 0015 線種を指定する. 0016 線幅倍率を指定する. *..-.. t.J °一 !こa 図4. 1 プログラムの出力結果 -733- 九州大学大型計算機センター広報 Vol.22 No.6 1989 解 説 線の色を指定する. 折れ線を出力する. ワークステーションが端末の場合,出力がすべて終了するとすぐに,表示画面が クリアされるので,ワークステーションに入力要求を出して待ち状態にする. N LP, OP R等では,入力ができないのでメッセージが出力されるが,出力に影 0025 -- 0027 響はない.なお, 「ENTER」キーによりプログラムの実行を再開する. ワークステーションを使用不可能状態まで戻し, GKSの終了処理を行う. 図4. 1に出力結果を示す. 4. 2 マーカ列(POLYMARKER) 出力可能なワークステーションの指定された座標点それぞれに,同一のマーカを出力するプリ ミティブである.マーカ列には非幾何属性のみが存在する.マーカ列関連サブルーチンを表4. 4に示す. 表4. 4 マーカ列関連サブルーチン 4. 2. 1 マーカの出力 マーカの出力にはサブルーチンGPMを使用する.以下に呼び出し形式を示す. CALL GPM (N.PXA.PYA) 引数Nはマ-カの頂点数を指定する.指定有効な値は1以上である. PXA.PYA はそれぞれ,マ ーカの頂点のⅩ座標値, Y座標値を格納している実数型配列名を指定するが, Nが1ならば実数 値でよい.このサブルーチンにより(PXA(l).PYA(D)‥‥.(PXA(N).PYA(N))の各座標点にマーカ を出力する.また,指定した座標がクリッピング枠(5. 4章参照)の内側または枠上であれば マーカは表示される. 4. 2. 2 マーカ列指標 束属性を使用する場合に,参照するマーカのバンドルテーブル番号(マーカ列指培番号)を指 定する属性である.マーカ列指標番号の指定は,サブルーチンGSPMIによって行う.以下に 呼び出し形式を示す. CALL GSPMI (PMI) 引数pMIに,参照するマーカ列指標番号を指定する.指定した指標番号がない場合や,省略時は 1となる.本サブルーチンの指定を有効にするには,サブルーチンGSAS Fでマーカ列の,ど の属性について束属性表を使用するかを指定する必要がある. 九州大学大型計算機センター広報 Vol.22 No.6 1989 -734- GKS入門(2) 4. 2. 3 マーカ種 マーカの種類を指定する属性である.マーカ種の指定は,サブルーチンGSMKによって行う. 以下に呼び出し形式を示す. CALL GSMK (MTYPE) 引数MTYPEに,表4. 5に示すマーカ種の番号を指定する.省略値は3である.ただし,ワー クステーションによっては出力できないものもある. 表4. 5 マーカ定義表 ∴I-V三三; 1 2 3 -ォ 5 - -2 マーたJ^F - * : = × ?・_ ★ ・回-5 -6 -7 案F回 ^^^^^^^^^H gi漢I QE寒m一 4. 2. 4 マーカ倍率 出力するマーカの倍率を決定する属性である.マーカ倍率の指定は,サブルーチンGSMKS Cによって行う.以下に呼び出し形式を示す. CALL GSMKSC (MSZSF) 引数MSZSF は,出力するマーカの倍率を基準マーカに対する比率で指定する.省略値は1.0であ る.ただし,ワークステーションは指定した倍率を出力できないことがあり,この場合はワーク ステーションが持っているマーカ倍率に一番近い大きさになる.指定有効な値は 0.0以上で, 0.0を指定すると,ワークステーションの持っているもっとも小さいマ-カになる. 4. 2. 5 マーカ列色指標 出力するマーカの色を指定する属性である.マーカの色の指定は,サブルーチンGS PMCI によって行う.以下に呼び出し形式を示す. CALL GSPMCI (COLD 引数COLIは,折れ線と同様に,ワークステーションの色定義表の色指標番号を指定する.省略 値は1である. 4. 2. 6 マーカを用いたプログラム例 マーカ種をすべて出力するプログラムを示す. 0001 PROGRAM MARKER OOO2 C 0003 INTEGER MK(19), STAT. CHNR -735- 九州大学大型計算機センター広報 Vol.22 No.6 1989 解 REAL X.Y 0004 o 0005 0006 DATA X/0. 3/, Y/0. 05/ 0007 DATA MK/1.2. 3,4.5,-1,-2,-3.-4,-5,-6,-7,-8,-9,-10,-ll,-12,-13,-14/ 0008 J = 2 .・Ill* CALL GOPKS (0,1) 0011 CALL GOPWK (1.1.1) o 0010 0012 CALL GACWK (1) XXH3 DO 1 l=1.19 0015 CALL GSMK (MK(D) 0016 CALL GSMKSC (3.0) 0017 CALL GSPMCI (J) 0018 CALL GPM (l.X.Y) o 0014 Y = Y+0.05 0019 刃・MI WMI IF (I.EQ.10) THEN OXの X = X+0.2 XX門 Y = 0.05 0024 J = 3 o 0025 ENDIF 0026 1 CONT川UE c 0027 0028 CALL GRQCH (1, 1.STAT.CHNR) 0029 CALL GDAWK (1) 0030 CALL GCLWK (1) 0031 CALL GCLKS 0032 Uttf ! c 0033 STOP END (プログラムの説明) 0003 0004 0006 - 0007 0010 一- 0012 ・M li- 変数,配列を宣言する. 初期値を設定する. GKSの初期化,およびワークステーションの状態変更を行う. マーカ種を指定する. XW由 マーカ倍率を指定する. マーカの色を指定する. 0m8 マーカを出力する. 0028 ワークステーションが端末の場合,すぐに表示面がクリアされるのを防ぐため, 0016 ワークステーションに入力要求を出して待ち状態にする. 0029 0031ワークステーションを使用不可能状態まで戻し GKSの終了処理を行う. 九州大学大型計算機センター広報 Vol.22 No.6 1989 -736- GKS入門(2) プログラムの出力結果は,表4. 5に示すマーカ種全部であるため省略する. 4. 3 領域(FI L L AREA) 指定した点を順に結んで閉じた領域を出力するプリミティブである.領域には幾何属性と非幾 何属性が存在する.表4. 6に領域関連サブルーチンを示す. 表4. 6 領域関連サブルーチン 4. 3. 1 領域の出力 領域の出力には,サブルーチンGFAを使用する.以下に呼び出し形式を示す. CALL GFA (N.PXA. PYA) 引数Nは領域の頂点数を指定する.指定可能な値は3以上である. PXA.PYAはそれぞれ,領域 の頂点のⅩ座標値, Y座標値を格納している実数型配列名を指定する.このサブルーチンにより, (PXA(l).PYA(D), (PXA(2).PYA(2)),.‥, (PXA(N).PYA(N)). (PXA(l).PYA(D)の順に,指定された 座標点を順に直線で結んで多角形の領域を出力する. 4. 3. 2 領域指標 束属性を使用する場合に,参照する領域のバンドルテーブル番号(領域指標番号)を指定する 属性である.領域指標番号の指定は,サブルーチンGSFAIによって行う.以下に呼び出し形 式を示す. CALL GSFAI (FAI) 引数FAlに,参照する領域指標番号を指定する.指定した指標番号がない場合や,省略時は1 になる.本サブルーチンの指定を有効にするには, 3章で説明したように,サブルーチンGSA S Fで領域の,どの非幾何属性について束属性表を使用するかを指定する必要がある. 4. 3. 3 領域内部械式 領域内部をどのような様式にするかを指定する属性である.領域内部様式の指定は,サブルー チンGSFAI Sによって行う.以下に呼び出し形式を示す. CALL GSFAIS (川TS) 引数川TSに,表4. 7に示す内部様式の番号を指定する.省略値は0である.ただし,ワーク -737- 九州大学大型計算機センター広報 Vol.22 No.6 1989 解 説 ステーションによっては出力できないものもある.なお,中空以外は領域の境界線は描かれない. 表4. 7 領域内部様式 柄 4. 3. 4 領域様式指標 領域内部様式を柄またはハッチと指定した場合に,その様式を指定する属性である.柄・ハッ チの様式の指定は,サブルーチンGS FAS Iによって行う.以下に呼び出し形式を示す. CALL GSFASI (STYLI) 引数sTYLIは,柄の場合は柄表に定義している柄の指標番号を,ハッチの場合にはハッチの種類 の指標番号を指定する.省略値は1である.ワ-クステーションに定義されていない番号を指定 した場合には1を使用する.出力するワークステーションに1がない場合は,ワークステーシ ョンに依存した値がとられる. F6683Aカラーディスプレイは柄をサポートしていないが, ハッチを出力できる.使用できるハッチを表4. 8に示す. 表4. 8 ハッチの種類 ・ ^^^S回■ 漢IE1日巨∃rr 4. 3. 5 領域色指標 領域を出力するときの色を指定する属性である.領域の色の指定は,サブルーチンG S FAC Iによって行う.以下に呼び出し形式を示す. CALL GSFACI (COLI) 引数COLIは,折れ線等と同様に,ワークステーションの色定義表の色指標番号を指定する.管 九州大学大型計算機センター広報 Vol.22 No.6 1989 - 738 GKS入門(2) 鴫値は1である.ただし,柄の場合は本サブルーチンを使用せず,柄表に指定した色指槙の色で 表示する. 4. 3. 6 柄寸法 領域の内部様式に柄を指定した場合に,柄をどのくら.いの大きさで領域内に展開していくのか を, 1回に展開する柄の大きさで指定する属性である.指定した大きさの柄を上下左右へ順に展 開していき,領域内部を塗りつぶしていく.柄寸法の指定は,サブルーチンGS PAによって行 う.以下に呼び出し形式を示す. CALL GSPA (SZX.SZY) 引数sZX,SZY はそれぞれ, 1回に展開するX方向の大きさ, Y方向の大きさを指定する.省暗値 は, SZX.SZY共に1.0である.本サブルーチンは,柄をサポートしていないワークステーション では使用されない. 4. 3. 7 柄基準点 領域内部様式に柄を指定した場合に,領域の柄基準点を指定する属性である.柄基準点は,領 域様式指標で指定した柄表の左下隅の点と盛なる.柄基準点から上下左右に,柄寸法で指定した 大きさの柄表を繰り返すことによって領域を塗りつぶしていく.柄基準点の指定は,サブルーチ ンGS PARFによって行う.以下に呼び出し形式を示す. CALL GSPARF (RFX.RFY) 引数RFX.RFYはそれぞれ,柄基準点のX座械, Y座標を指定する.省略値は, RFX.RFY共に 0.0である.本サブルーチンは,柄をサボ-トしていないワークステーションでは使用されない. 4. 3. 8 領域を用いたプログラム例 領域内部,色などを変えて出力させるプログラム例を以下に示す. 0001 PROGRAM AREA 0002 C 0003 INTEGER STAT,CHNR.STYLI(8), COM(8), INTSC3) 0004 REAL X(0. Y(4) 0005 C tliliE DATA STYLI/-19,-20.-21.-22, -23,-24,-25,-26/ 0007 DATA COLI/2,3,4.5.6,7.2,3/ 0008 DATA INTS/0. 1.3/ 0009 DATA X/0.2,0.7.0.8.0.3/ 0010 DATA X/0.2,0.3.0.8,0.7/ 0011 C 0012 CALL GOPKS (0,1) 0013 CALL GOPWK (1,1,1) 0014 CALL GACWK (1) 0015 C 0016 DO 1 l=1.3 0017 DO 1 J=l,8 0018 CALL GSFAIS (INTS(I)) 0019 CALL GSFACI (COLI(D) -739- 九州大学大型計算機センター広報 Vol.22 No.6 1989 解 c 0020 0021 IF (I.EQ.3) THEN CALL GSFASl (STYLI(D) 0022 CALL GFA (4,X,Y) 0023 c 0024 CALL GRQCH (1, l.STAT.CHNR) CALL GCLRWK (1.1) 0025 0026 1 CONTINUE c 0027 0028 CALL GDAWK (1) 0029 CALL GCLWK (1) 0030 CALL GCLKS X』の 0033 c 0032 STOP END (プログラムの説明) 0003 - 0004 0006 ・ 0010 0012 - 0014 0018 0019 0021 0022 0024 必要な変数,配列を宣言する. 初期値を設定する. GKSの初期化,およびワークステーションの状態変更を行う. 領域内部様式を指定する. 領域の色を指定する. 領域様式指標を指定する. 領域を出力する. ワークステーションが端末の場合,すぐに表示面がクリアされるのを防ぐため, ワークステーションに入力要求を出して待ち状態にする. 画面のクリアを行う. 0028 0030 ワークステーションを使用不可能状態にし, GKSの終了処理を行う. 図4. 3に領域内部様式を3,領域様式指接を-2 4にした時の出力結果を示す. 0025 図4. 3 プログラムの出力結果 4. 4 文字列(TEXT) 指定した点に文字列を出力するプリミティブである.テキストには,非幾何属性と幾何属性の iで示した部分は, GKS85特有 両方がある.文字列関連サブルーチンを表4. 9に示す. のサブルーチンである. 九州大学大型計算機センター広報 Vol.22 No.6 1989 -740- GKS入門(2) 表4. 9 文字列関連サブルーチン サブルーチン名 機能概要 文字列 日本語文字列 GT X 文字列の出力(フルバージョン) 文字列の出力(サブセットバージョン) GJ T X G T X S 文字列指標の指定 書体指標と文字列表示精度の指定 文字幅比の指定 字間の指定 文字列色相様の指定 日本語様式指標の指定 G S T X I G S T X F P G S C H S l S T J O O ro^HQ X D ti,< a a x x V < > 1 > f > D CO CO CO CO O 字高の指定 文字立上り方向の指定 文字列方向の指定 文字列配置の指定 S G S C XT P I-G G S CHX P 4. 4. 1 文字列と日本語文字列の出力 文字列(1バイト系文字列)や日本語文字列(2バイト系文字列)を出力するサブルーチンに は,フルバージョンとサブセットバージョンがある.これらの違いは,サブセットバージョンに は文字列の長さを指定する引数があることで出力は変わらない.文字列,日本語文字列の出力を 行うフルバージョンのサブルーチン(GTX, GJ TX)の呼出し形式を以下に示す. 文字列 cALL GTX (PX,PY. CHARS) 日本語文字列 CALL GJTX (PX, PY,JCHARS) 引数PX,PYには,文字列を出力する位置(基準点)を指定する. CHARS,JCHARS は,それぞれ文 字列,日本語文字列を指定する.ただし,文字列と日本語文字列の混在はできない. 4. 4. 2 文字列指標 束属性を使用する場合に,参照する文字列のパンドルテーブル番号(文字列指標番号)を指定 する属性である.文字列指標番号の指定は,サブルーチンGS TXIによって行う.以下に呼び 出し形式を示す. CALL GSTXI (TXI) 引数TXIに,参照する文字列指標番号を指定する.指定した指標番号がない場合や,省略時は 1となる.本サブルーチンの指定を有効にするには, 3章で説明したように,サブルーチンGS A S Fで文字列の,どの非幾何属性について束属性表を使用するかを指定する必要がある. 4. 4. 3 書体指標と文字列表示精度 文字を出力する時の書体を指定するものが書体相接であり,文字列を出力する時に文字列属性 をどこまで正しく使用するかを指定するものが文字列表示精度である.この二つの属性の指定は, サブルーチンGSTXFPによって行う.以下に呼び出し形式を示す. CALL GSTXFP (FONT,PREC) 引数FONTは書体指標で. -1 (装置依存) , -2 (ストローク), -3 (CG文字)のいずれかの -741- 九州大学大型計算機センター広報 Vol.22 No.6 1989 解 説 値を指定し, PRECは文字列表示精度で,以下に示すいずれかの値を指定する. 0 (文字列精度) :字高,字幅,文字幅比属性はできる限り使用するが,文字立上り方向, 文字立並び方向,文字列方向,文字列配置,字間属性はワークステーシ ョンに依存する. 1 (文字精度) 文字列配匿,文字列方向,字間属性は正しく使用する.また,字高,字 幅,文字立上り方向.文字立並び方向,文字幅比はワークステーションに 依存するが,できる限り使用する. 2 (図形精度) . すべての文字列属性に忠実に従って,文字列を出力する. 出力するワークステーションに,指定した書体指揺および文字列表示精度が存在しない場合には, それぞれ省喝値の-1.0が使用される. 4. 4. 4 文字幅比 出力する文字の幅を決定する属性で,基準文字書体の縦横比に対する比率を指定する.例えば, 基準書体の比率が1:1の場合,文字幅比を2.0 とすると,出力される文字の「高さ」に対する 「幅」の比率は1:2 となり, 1:0.5 の場合は1:1となる.文字幅比の指定は,サブルーチンG S CHXPによって行う.以下に呼び出し形式を示す. CALL GSCHXP (CHXP) 引数CHXP は,文字幅比を文字の高さに対する比率で指定する.省略値は1.0である.このサブ ルーチンで指定した値を正しく使用するのは,ワークステーション記述表の有効文字幅比の数が 0 となっている場合でかつ,文字列表示精度が図形精度である場合のみである. 4. 4. 5 字間 字間とは,文字列を出力する場合,隣接した文字の間に挿入されるスペースの大きさのことで, 字高との比率で指定する.指定した字間が0.0ならば,文字と文字の問にスペースは挿入されな い.指定した値が負であれば文字が重なる場合があり -1.0であれば文字と文字は完全に重なる. 字間の指定は,サブルーチンGS CHS Pによって行う.以下に呼び出し形式を示す. CALL GSCHSP (CHSP) 引数CHSP は,字間を文字の高さとの比率で指定する.省略値は0.0である. 4. 4. 6 文字列色指標 出力する文字列の色を指定する属性である.文字列の色の指定は,サブルーチンGS TXC I によって行う.以下に呼び出し形式を示す. CALL GSTXCI (COLI) 引数COLIは,折れ線等と同様に,ワークステーションの色定義表の色指標番号を指定する.管 略値は1である. 4. 4. 7 日本語様式指標 日本語を出力する時の基準文字容体を指定する属性である.日本語様式の指定は,サブルーチ ンGSJTS Iによって行う.以下に呼び出し形式を示す. CALL GSJTSI (STYLE) 引数STYLEには,使用する基準文字書体の番号を指定する.基準文字書体は,全部で1 1種類あ るが, G'KS85で現在サポートしているワークステーシヲンでは1 (12ポイント)のみが 使用できる.ワークステーションでサポートしていない基準文字書体を指定しても,すべて1 2 九州大学大型計算機センター広報 Vol.22 No.6 1989 -742- GKS入門(2) ポイントで出力される. 4. 4. 8 字高 出力する文字の高さを指定する属性である.字高の指定は,サブルーチンGS CHHによって 行う.以下に呼び出し形式を示す. CALL GSCHH (CHH) 引数CHHは文字の高さを世界座標で指定する.字高は,これを基準としている字幅,字間にも影 響を与える.また,この値を忠実に使用できるか否かは,'ワークステーションの能力と文字列表 示精度による.指定有効な値は 0.0 より大きい値である.省略値は0.01である. 4. 4. 9 文字立上り方向 出力する文字の立上り方向(文字の高さの方向)をベクトルで指定する属性である.文字立並 び方向は,文字立上り方向に対して時計回りに垂直な方向であり,文字の基準線の方向を与える ものである.文字立上り方向の指定は,サブルーチンGS CHUPによって行う.以下に呼び出 し形式を示す. CALL GSCHUP (CHUX,CHUY) 引数CHUX.CHUYは,ベクトルのⅩ成分, Y成分を指定する.省略値はそれぞれ0.0.1.0である. 文字はベクトルの方向に傾くが,ベクトルの大きさには意味がない.この指定によって文字立並 び方向も決定する.この属性もワークステーション能力と文字列表示精度が大きく影響する. 4. 4. 10 文字列方向 文字列を書く方向を指定する属性である.この属性を変えることによって,文字列を上から下 へ書いたり,下から上へ書いたりすることができる.文字列方向の指定は,サブルーチンGST x pによって行う.以下に呼び出し形式を示す. CALL GSTXP (TXP) 引数TXPは文字列の方向を, 0 :右, 1 :左, 2 :上, 3 :下のいずれかの値を指定する. 4. 4. 11 文字列配置 文字列の出力時に文字列の,どの位置を基準点に合わせるかを指定する属性である.文字列配 匿の指定は,サブルーチンGSTXAいこよって行う.以下に呼び出し形式を示す. CALL GSTXAL (TXALH, TXALY) 文字列配置には二つの位置がある.引数TXALHには水平位匿, TXALVには垂直位置を指定する. 指定可能な値は以下に示すとおりである. 水平位置 0 :棲準 1 :左端 2 :中間 3 :右端 垂直位置 0 :標準 1 :上限 2 :上基準 3 :中間 4 :基準 5 :下限 4. 4. 12 文字列を用いたプログラム例 座標軸に目盛りのついたグラフを出力するプログラム例を示す.文字列は,座標変換の影響を 著しく受けるため,プログラムには座標変換も用いた.なお,座標変換は5章参照. 0001 PROGRAM TEXT O002 C 0003 ' INTEGER WKID/1/,STAT,CF川R 0004 REAL PXA(2).PYA(2), XA(ll),YA(ll) -743- 九州大学大型計貫機センター広報 Vol.22 No.6 1989 解 読 o LO CO C-- OO O C5 C3 C3 0 0 0 0 0 0 0 o CHARACTER CHARS*5 o NCHARACTER TITLE+9 /NC簡単なグラフの作成'/ o o DATA XA/ 0.0,10.0,20.0.30.0,40.0,50.0.60.0,70.0.80.0,90.0,100.0/ o NCHARACTER TITLEX*5/NC* X軸の説明'/ NCHARACTER TITLEY*5/NC'Y軸の説明.I/ 010 a DATA YA/48.0,75.0,92.0.30.0.15.0,27.0.40.5,36.0,65.0.73.0,68.5/ c D ^ ^ O < ^ C ^ ^ O on c 012 CALL GOPKS (0,1) 013 CALL GOPWK (WKID,1.1) 014 CALL GACWK (WKID) 015 C 016 CALL GSffN (1,-20.0,120.0.-20.0,120.0) 017 CALL GSVP (1,0.0,1.0,0.0,1.0) 018 CALL GSELNT (1) 019 C CALL GSTXFP (-3.1) 021 CALL GSCHH (3.0) 022 CALL GSCHXP (0.5) 023 CALL GSJTSI (1) CM CM CNJ CO CO O CO CO CO CO CO CO CO <=> o o o C3 C3 C=> O O O O C3 <Z> 0 0 0 0 nU 0 0 O ^ ^ ^ ^ O ^ C 3 ^ ^ ^ O ^ C D ^ ^ O C 3 ^ 5 C 3 C D ∧ U 0 O ∧ 3 0 0 0 0 020 024 C 025 PXA(l) = 0.0 026 PXA(2) = 100.0 C - PYA(l) = 0.0 C PYAC2) = 0.0 O O ) CALL GPL (2.PXA.PYA) O CALL GSTXAL (2,1) * - DO 10 l=0.100.2 H C O PXA(l) = REAL(I) C O PXA(2) = PXA(l) ・ lF (I-I/10*10.EQ.O) THEN * & PYA(2) = -2.0 L O CALL GPL (2.PXA.PYA) * O t WRITE (CHARS,1 (F5.1)1) REAL(I) CALL GTX (PXA(2),PYA(2),CHARS) c O ELSE O > PYAC2) = -1.0 ^ CALL GPL (2.PXA.PYA) ^ I ENDIF O * 3 043 10 CONTINUE A 一 4 4 A A︼ 5 6 1 PXA(l) = 0.0 PXA(2) = 0.0 PYA(l) = 0.0 一 PYA(2) = 100.0 九州大学大型計算機センター広報 Vol.22 No.6 1989 -744- GKS入門(2) 0048 CALL GPL (2.PXA.PYA) 0049 CALL GSTXAL (3.3) ・IiMi DO 20 1=0.100,2 X関目 PYA(1) = REAL(I) 0052 PYA(2) = PYA(l) 0053 lF (卜l/10書10.EQ.0) THEN 0054 PXA(2) = -2.0 0055 CALL GPL (2.PXA.PYA) ・IKE WRITE (CHARS,1 (F5.1)') REAL(I) 0057 CALL GTX (PXA(2).PYA(2). CHARS) ELSE: 0058 mill E PXA(2) = -1.0 0060 CALL GPL (2,PXA,PYA) ENDIF 0061 0062 20 CONT川UI; XMR CALL GSCHXP (1.0) 0064 CALL GSTXAL (2,3) 0065 CALL GJTX (50.0,110.0,TITLE) am完 CALL GJTX (50.0.-10.0.XTITLE) EMii CALL GSTXP (3) 嵩Iift CALL GJTX (-15.0,50.0.TITLEY) OO69 C 0070 CALL GPL (ll.XA.YA) 0071 C 0072 CALL GRQCH (WKID. 1.STAT.CHNR) 0073 C 0074 CALL GDAWK (WKID) 0075 CALL GCLWK (ff KID) 0076 CALL GCLKS 0077 C 0078 STOP 0079 END (プログラムの説明) 0009 ・- 0010 必要な変数,配列を宣言する. グラフのデータを定義する. 0012 ・ 0014 GKSの初期化,およびワークステーションの状腰変更を行う. 0016 0018 0021 ウインドウとビューポートを定義する(詳細は5章参照). 使用する書体をc G文字,文字列表示精度を文字精度にする. 文字の高さを世界座標系で3.0 とする. 0022 文字の幅を基準書体の半分とする. 0003 ・- 0008 0020 冗XのS 0025 日本語の基準事体を1 2ポイントにする. 0029 X軸を描く - 745 九州大学大型計算機センター広報 Vol.22 No.6 1989 解 説 0030 文字列配置を設定する.水平位匿:中間,垂直位置:上限. 0031-0043 X軸の目盛りを描く. 0044-0048 Y軸を描く. 0049 文字列配置を設定する.水平位置:右端,垂直位置:中間. 0050-0062 Y軸の目盛りを描く. 0064 文字の幅を基準書体と同じにする. 文字列配置を設定する.水平位置:中間,垂直位置:中間. 嵩XBj蛭 グラフのタイトルをグラフ上に出力する. ffllifi X軸の説明をⅩ軸の下に出力する. 0067 Ebは8 文字列方向を上から下へ設定する. Y軸の説明をY軸の左側に出力する. 0069 折れ線グラフを出力する. 0063 3川山門 ワークステーションが端末の場合, GKSが終了すると表示画面がクリアされて しまうので,ワークステーションに人力要求を出して一時中断させる. 0074 - 0076 ワークステーションを使用不可能状態まで戻し, GKSの終了処理を行う. 図4. 4に出力結果を示す. UMB勿kfcM.j回 E'K> 90.0 ●0.O tnto l的.O Y AI S^BUE 拐 lO.O l蝣Ml"] 20.O TO* 0.0 0.0 10.O IO.0 10.0 40.0 50.0 ▲0.0 70.0 10.0 ●0.0 100.0 X軸の蛸IJl 図4. 4 プログラムの出力結果 5. 座標変換 GKSには世界座標,正規化装置座標,装置座標の3つの座標系がある.世界座標は応用プロ グラムが実際に指定する座標で,正規化装置座標は世界座標で作成された図形を装置座標に変換 するための仮想的な空間で, GKSの統一的な座標である.装置座標は各装置が固有に持つ座標 である.これらの座培間には相互に変換が存在し,図形の拡大,縮小が可能である. 5. 1 正規化変換 図形は,まず世界座標上に応用プログラムで指定された座標値で描かれる.世界座標は概念的 に無限空間であるから,描かれた図形の,出力の対象とする範囲(矩形)を定義する.この世界 座標上の'矩形をウインドウという.このウインドウの図形を,やはり概念的に無限空間である正 規化装置座標上の,どこにどの程度の大きさで写像するかを定義した矩形をビューポートという. 九州大学大型計算機センター広報 Vol.22 No.6 1989 -746- GKS入門(21 このビューポートにウインドウの図形が,座標値を変換されて写像される.また,ウインドウと ビューポートの縦横比は異なってよい.この縦横比をアスペクト比といい,例えばウインドウが 正方形で,ビューポートが横長の長方形の場合は,座標変換され横に引き延ばされた図形がビュ ーポートに写像される.すなわち,この場合はウインドウとビューポートの図形は異なる.円な どを出力するときは,ウインドウとビューポートの縦桟比を同いこする必要がある.なお,ウイ ンドウ外の図形は,ビューポートには写像されないが,ウインドウ内の図形と同様の座標変換を 受け,正規化装置座接に写像される.このように,世界座標から正規化装置座標に変換すること を正規化変換という. ウインドウとビューポートはいくつでも設定でき,正規化変換番号と呼ばれるもので管理され ている.どの正規化変換を行うかは正規化変換番号を指定することにより行う. 正規化変換には,表5. 1に示す3つのサブルーチンを使用する. 表5. 1 正規化変換用サブルーチン 以下にそれぞれのサブルーチンの呼出し形式を示す. CALL GSWN (TNR.WXMIN.WXMAX,WYMIN.WYMAX) ① CALL GSVP (TNR.VXMIN,VXMAX,VYMIN.VYMAX) ② CALL GSELNT (TNR) ③ ① 引数TNR は,正規化変換番号で,指定可能な値は1-1 27までである. WXM川.WXMAX. wYMIN.WYMAXはそれぞれ,定義するウインドウの左下のX座標,右上のX座標,左下のY座標, 右上のY座標を世界座標で指定する.すなわち,ウインドウは(WXMIN.WYMIN) -- (WXMAX, wYMAX)の範囲であることを定義する.このウインドウ内の図形が②で定義するビューポ-トに 写像される.このサブルーチンを省略したときは, CALL GSWN (0,0.0.1.0.0.0,1.0) となっている. ② 引数vxMIN.VXMAX,VYMIN.VYMAXは,定義するビューポートの左下のⅩ座標,右上のX座標, 左下のY座標,右上のY座標を正頒化装置座標で指定する.すなわち,ビューポートは (VxMIN.VYM川) - (VXMAX,VYMAX)の範囲であることを定義する.指定できるのは(0.0,0.0) (1.0.1.0)の範閑(この範囲が正頒化装置座楼上の図形を表示できる範囲)であり,この範 囲より小さくビューポートを設定すると,ウインドウ外の図形も正規化装置座標の表示可能範 囲に写像できる.このサブルーチンを省略したときは, CALL GSVP (0,0.0.1.0,0.0,1.0) となっている. ③ 正規化変換番号TNRで示された正規化変換を行うことを指定する.このサブルーチンを省略 したときは, CALL GSELNT (0) となっている. -747- 九州大学大型計算機センター広報 Vol.22 No.6 1989 解 説 5. 2 ワークステーション変換 出力図形の大きさはワークステーションによって異なる.例えば端末の表示範囲全体に図形を 出力できてもプリンタには小さく出力される.これはワークステーションによって装置座槙が異 なるためである.ワークステーション変換は装置座揺を意識した変換である. ワークステーション変換は,ビューポート内の図形の,出力の対象とする範囲(矩形)を定義 する.これがワークステーションウインドウである.このワークステーションウインドウの図形 を,装置座榛の,どの位置にどの程度の大きさで出力するかを定義した矩形をワークステーショ ンビューポートという.このワークステーションビューポートに,ワークステーションウインド ウ内の図形を座標変換して写像する.これがワークステーション変換である. ワ-クステーション変換は,表5. 2に示す2つのサブルーチンを使用する. 表5. 2 ワークステーション変換用サブルーチン 以下にそれぞれのサブルーチンの呼出.し形式を示す. CALL GSWKWN (ff KID.XffMIN.XffMAX,YWMIN.YWMAX) ① CALL GSWKVP (ff KID.XVMIN.XVMAX,YVMIN,YVMAX) ② ① 引数WKIDは,ワークステーション名を指定する. XWMIN.XWMAX.YWMIN.YWMAX はそれぞれ, 定義するワークステ-ションウインドウの左下のX座標,右上のⅩ座標,左下のY座標,右上 のY座標を正規化装置座標で指定する.すなわち,ワークステーションウインドウは(XWMIN. YWMIN) - (XWMAX,YffMAX)の範囲であることを定義する.指定できるのは(0.0.0.0) - (1.0 .1.0)の範囲である.このサブルーチンを省略したときは, CALL GSWKWN (ff KID.0.0.1.0,0.0.1.0) となっている. ② 引数XVMIN.XVMAX.YVMIN.YVMAX はそれぞれ定義するワークステーションビューポートの左下 のⅩ座標,右上のⅩ座標,左下のY座棲,右上のY座標を装置座標で指定する.すなわち,ワ ークステーションビュ-ポートは(XVMIN.YVM川) - (XVMAX.YVMAX)の範囲であることを定義 する.このサブルーチンを省略したときは,ワークステーションWKIDの表示可能範囲のすべ てである. また,正規化変換と違い,ワークステーションウインドウとワークステーションビューポート の縦横比が異なっても図形が変わることはない.その場合は,指定されたワークステーションビ ューポートの範囲内で,ワークステーションウインドウの縦横の比率を持つ最大の領域に写像す る.なお,ワークステーション変換は1つのワークステーシ冒ンに1つしか設定できない. 座標変換において有用なサブルーチンがある. CALL GQDSP (WTYPE,ERRIND,DCUNIT.RX.RY,LX,LY) このサブルーチンを用いることにより,ワークステーションの出力可能範囲を知ることができ る.引数ERRIND はこのサブルーチンによるエラー番号をGK Sが通知する領域で整数型変数で ある. DCUNIT は装匿座標の単位をGKSが通知する領域で整数型変数である. RX.RY はそれぞれ 出力装置の表示空間サイズのⅩサイズおよびYサイズを装置座標でGKSが通知する領域で実数 九州大学大型計算機センター広報 Vol.22 No.6 1989 748 - GKS入門(2) 型変数である. LX.LYは出力装置の表示空間サイズのⅩサイズおよびYサイズを画素数でGKS が通知する領域で整数型変数である.したがって,ビューポート,ワークステーションウインド ウの杭と縦の比をRX:RY となるように設定し,ワークステーシ3rンビューポートを(0.0,0.0) (RX.RY)の範囲となるように定義すれば,ワークステーションの表示範囲全体に,描いた図形 全体を表示できる. _票誓>蝣三雲主芸^_ -サ.・*=:::誓芸雲雲言霊警S'- ''票三三 ンに表示できる. 5. 3 座標変換を用いたプログラム例 ワークステーションの表示範囲全体にグラフを出力するプログラム例を示す. 0001 PROGRAM SAMPLE 0002 C 0003 INTEGER ERRI.DCUNIT. STAT. CHNR.LX.LY XXKE! REAL X(90),Y(90).FX(4),FY(4) 0005 REAL RAD.T.MINX,MAXX.M川Y. MAXY.RX. RY.MX.MY 0006 C 0007 0008 RAD = 3.1415/180.0 = 360.0 0009 C 0010 DO 1 l=1,90 0011 X(I) -360+(卜1)*12 MP担 Y(!) = X(I)*COS(X(I)*RAD)/T*SIN(T*RAD) 0013 1 CONTINUE 0014 C XIH5 MINX = X(l) 0016 MAXX = X(l) 0017 M川Y = Y(l) 嵩的8 MAXY = Y(l) 0019 C Xbは冗 DO 2 1=2.90 Em印 IF (X(I).LT.MINX) MINX = Xくt) 0022 IF (X(I).GT.MAXX) MAXX = XくD 3川田 IF (Y(I).LT.MINY) M川Y = Y(I) mw IF (Y(I).GT.MAXY) MAXY = Y(I) 0025 2 CONT川UE 0026 C 0027 FX(1) - M川X 0028 PX(2) * MAXX 0029 FX(3) = MAXX 0030 FX(4) = M川X 0031 FY(1) = M川Y 0032 FY(2) = M川Y -749- 九州大学大型計算機センター広報 Vol.22 No.6 1989 m 読 r冗m FY(3) = MAXY 0034 FY(4) = MAXY 0035 C 0036 CALL GOPKS (0.1) 0037 CALL GOPWK (1,1.1) 0038 CALL GACWK (1) 0039 C 0040 CALL GQDSP (1.ERRI.DCUNIT.RX.RY,LX.LY) 0041 IF (RX.LT.RY) THEN ・I'll覇 Wl・ 0044 MX = RX/RY MY = 1.0 ELSE MX = 1.0 ant MY = RY/RX 0046 0047 ENDIF 0048 C 0049 HォMi CALL GSWN (l.MINX.MAXX.MINY.MAXY) CALL GSVP (1,0.0,MX.0.0,MY) 0051 CALL GSELNT (1) :サm* CALL GSWKWN (1,0.0.MX.0.0,MY) 0053 CALL GSWKVP (1,0.0,RX,0.0,RY) 0054 C EKm CALL GPL (90,X,Y) 0056 CALL GFA (4.FX.FY) 0057 C 0058 CALL GRQCH (1, 1.STAT,CHNR) 0059 CALL GDAWK (1) 0060 CALL GCLWK (1) X朋は CALL GCLKS 0062 C 0063 STOP KO的 END (プログラムの説明) 0003 - 0005 必要な変数,配列を宣言する. 0007 ・ 0013 折れ線データを求める. 0015 ・ 0025 折れ線データのⅩおよびYの最小値と最大値を求める. 矩形を描くための座梯値を配列に設定する. GKSの初期化,およびワークステーションの状態変更を行う. 0027 - 0034 0036 ・- 0038 0040 - 0047 ワークステーションの表示空間などを応用プログラムに通知させ'る. 0049 - 0051 ウインドウとビューポートを設定し,正規化変換を行う. ワークステーションウインドウとワークステーションビューボートを設定し,ワ 0052 - 0053 ークステーション変換を行う. 九州大学大型計算機センター広報 Vol.22 No.fi 1989 -750- GKS入門(2) 0055 折れ線を描く. 0056 折れ線が収まるような矩形を描く. 0058 ワークステーションを待ち状態にする. 0059 - 0061ワークステーションを使用不可能状態まで戻し,終了処理を行う. 図5. 1に出力結果を示す. 図5. 1 プログラムの出力結果 5. 4 クリッピング クリッピングとは,指定されたクリッピング枠外の図形を除去する処理である. GKSでは, クリッピング枠にビューポートを用いている.クリッピング処理は,正規化変換時に行われるの ではなくワークステーション変換時に行われる.これは,ビューポートとワ-クステ-ションウ インドウが重なった部分のみが出力の対象になるためである.使用するサブルーチンは, GS C L I Pである. CALL GSCL王P (CLSff) 引数CLSWはクリッピング枠でクリッピングするか,しないかを指定する.指定できるのは1 (行う)かo (行わない)であり,省略値は1である. 5. 5 クリッピングを用いたプログラム例 PROGRAM CLIP 0001 C nm担 0003 CHARACTER CNARl*5. CHAR2(0:l)*12. CHAR3*9, CHAR4(0:l)*3 0004 INTEGER STAT. CHNR C 0005 0006 DATA CHARl/'GKS85*/ 0007 DATA CHAR3/'cLIPP川G'/ DATA CHAR4/'OFF'.'ON '/ ・HI* C 0009 0010 CALL GOPKS (0.1) 0011 CALL GOPWK (1.1.1) 0012 CALL GACWK (1) C EmBj -751- 九州大学大型計夢機センター広報 Vol.22 No.6 1989 m E』m CALL GSWN (1,-5.0.0.0.-5.0,5.0) 0015 CALL GSVP (1,0.0,0.5.0.0,1.0) 0016 CALL GSELNT (1) o 00n 0018 DO 1 l=0,1 0019 CALL GSCLIP (I) 0020 o tltM l CHAR2(I) = CHAR3//CHAR4(I) 0022 0023 CALL GSCf川(0.1) 0024 CALL GSCHXP (1.0) 0025 CALL GSCHSP (1.0) o 0026 CALL GTXC-3. 0.0.0.CHAR2(I)) 0027 CALL GSCHH (0.5) 0029 CALL GSCHXP (1.0) 0030 CALL GSCHSP (0.5) o Xの8 0031 0034 0035 0036 0037 0038 II* E NIG H*>^^^^^^^^^^^K*V 0033 CALL GTX (-2.0.-1.5,CHARl) PV 0032 CALL GRQCH (1, 1.STAT.CHNR) CALL GCLRWK (1.1) 1 CONTINUE CALL GDAWK (1) CALL GCLWK (1) CALL GCLKS miii STOP 0042 END (プログラムの説明) 0003 - 0004 必要な変数,配列を宣言する. 0006 - 0008 初期値を設定する. GKSの初期化,およびワークステーションの状態変更を行う. ウインドウとビューポートを定義し,座梯変換を行う. 0010-- 0012 0014 ・ 0016 0019 クリッピングを行うか否かの指定. 0023 - 0026 字高.字幅.字間を指定し文字列を出力する. 字高,字幅,字間を指定し文字列を出力する. 0028 0031 0033 0034 ワークステーションを待ち状態にする. ワークステーションをクリアする. ワークステーションを使用不可能状態にし,終了処理を行う. 図5. 2に出力結果を示す.左がクリッピングをしない場合で,右がクリッピングをした場合で ある. 0037 ・ 0039 九州大学大型計算機センター広報 Vol.22 No.6 1989 -752- GKS入門(2) C LI P PI N G O F F C LI P PI N G O N G K S 8 5 G K S 図5. 2 プログラムの出力結果 6. おわりに 今回の「入門(2) 」で作図は充分可能であろう.次回はワークステーションに依存する「束 属性」 ,円や楕円を出力するGDPについて説明する. 参考文献 【1] GKS入門(1). 九大大型計貫機センター広報, Vol.22, No.5, 1989 P446 - P468. 【2]平野,グラフィック ツールを使った図形出力の方法,九大大型計算機センター広報, Vol.21, No.5, 1988 [3】ルシア マッケイ著, [4】計算機マニュアル, P432 P452. 松本真理訳, GKS入門,ノバ グラフィックス ジャパン㈱. 富士通 GKS85文法魯(FORTRAN77掃) (99SP-4040-2), 富士通㈱. [5]計算機マニュアル, FACOM GK S85使用手引書 VI O用(99SP-4080-1)富士通㈱. 753 - 九州大学大型計貫機センター広報 Vol.22 No.6 1989