Next:マージンにタイトル等を書く Up:レイアウト Previous:概要

1ページに複数の図形

同じ様な図形を沢山並べたい時, SLPACK を使うと非常に簡単にできる.


slpk01.f:page1

このプログラムでは横長の用紙を想定して, SGOPNで縦位置を選択し, SLMGN (Sgpack/Layout MarGiN) でその用紙全体のフレームでマージンをとるように指定している. さらにマージンを除いた部分を SLDIV (SL DIVide)を用いて横3, 縦5に分割し, その分割された領域のなかでさらにマージンをとる. 分割された領域は縦横比が1ではないので, SLRAT (SL RATio) を呼んでマージンをとったあとの領域に最大内接するように 1:1のフレームを設定する. (このプログラムではSLRATを呼ばなくても SGFRMが1:1のフレームをとってくれるが, いつもそのような好運に恵まれるわけではない. 思わぬ結果になることを避けるために, SLPACKのルーチンを使う時には常に SLRATで縦横比を 指定するようにしていただきたい. )

このように分割されたフレームを GRPH1 ではあたかも1枚の紙のように扱い, SGFRMの実行により, 次のフレームに自動的に移っていく. プログラムの DO ループの中は, 普通に改ページをしながら描画するのと全く同じである. SLPWWR (SL Plot Workstation Window Rectangular) はワークステーションウインドを描くユーティリティーであるが, これが分割されたフレームの中に描かれていることを見れば, GRPH1 がこの小さなフレームをワークステーションウインドと 見なしていることがわかる.

また SGSVPTでビューポートを設定しなおした時と違って, 文字の大きさも分割されたフレームの大きさに応じて小さくなっている ことに注意されたい.

このように, 同じ図形を規則的に並べるのは SLPACK を使うと非常に簡単にできる. しかし, 大きな図形の横に小さな図形を並べるというようなことは, SLPACK を使うより SGSVPTで ビューポート の設定をしなおした方がよいだろう.

なお, SLDIVは2回まで呼ぶことができて, 分割されたフレームをさらにもう一度分割することが可能である. SLPACK では 最初の SLDIVで分割される前の大きなフレームを第1レベル, SLDIVで1度分割された小さなフレームを第2レベル, さらにSLDIVで細かく分割されたフレームを第3レベル のフレームと呼ぶ.

Source:slpack/slpk01.f


地球流体電脳倶楽部 DCL-5.0
Last modified: Wed Apr 30 13:59:59 1997