概要
プロシージャの引数の並びは、NEC PC-9801のN88-BASICに準拠した形式とし、ワールド座標でのグラフィックス描画命令を標準モジュール内のプロシージャとして定義しライブラリ化しました。
座標や主要なパラメータ変数は宣言部で定義し、大域変数としてプロシージャ間で値の引渡しを行っています。
ラインスタイルや色の指定などに関するVisual Basicの定数については、VBAのヘルプを参照してください。
ワールド座標によるグラフィックスのための大域変数
Public gWindowXOrigin As Double, gWindowYOrigin As Double ' ワールド座標上の原点 Public gFactorX As Double, gFactorY As Double ' スクリーン座標との換算比率 Public gCurrentX As Double, gCurrentY As Double ' ワールド座標上の現在位置 Public gScreenXLeft As Single, gScreenYTop As Single ' Viewportの左上座標 Public gScreenXRight As Single, gScreenYBottom As Single ' Viewportの右下座標 Public gScreenX As Single, gScreenY As Single ' スクリーン上の現在位置 Public gLineWidth ' 線の幅 Public gLineStyle ' 線の種類 Public gDashStyle ' 破線の種類 Public gLineColor ' 線の色 Public gAreaColor ' 塗りつぶしの色 Public gTextColor ' 現在の文字の色
ワールド座標によるグラフィックス描画プロシージャ一覧
Sub InitializeGraphics() ' グラフィックス利用の開始宣言 Sub SetViewPort(ViewLeft, ViewTop, ViewRight, ViewBottom) ' ビューポートの指定 Sub SetGraphicsWindow(WindowLeft, WindowTop, WindowRight, WindowBottom) ' 描画ウィンドウのサイズの指定 Sub Move(x, y) ' 移動 Sub DrawLineTo(x2, y2, Optional cLineRGB) ' 現在位置から直線を描く Sub DrawLine(x1, y1, x2, y2, Optional cLineRGB) ' 直線を描く Sub DrawPolyLine(x, y, n) ' 直線を連続して描く Sub DrawRectangle(x1, y1, x2, y2, Optional cLineRGB) ' 矩形を描く Sub DrawRectangleFill(x1, y1, x2, y2, Optional cLineRGB, Optional cAreaRGB) ' 塗りつぶした矩形を描く Sub DrawOval(x, y, rx, Optional ry, Optional cLineRGB) ' 楕円を描く Sub DrawOvalFill(x, y, rx, Optional ry, Optional cLineRGB, Optional cAreaRGB) ' 塗りつぶした楕円を描く Sub PointSet(x, y, Optional cLineRGB) ' 点を打つ Sub DrawText(x, y, St, Optional txtcRGB) ' 文字を表示する Sub SetLineColor(lc) ' 線の色の指定 Sub SetLineStyle(ls) ' 線種の指定 Sub SetDashStyle(ds) ' 破線の種類の指定 Sub SetLineWidth(lw) ' 線の太さの指定 Sub gClear(c) ' すべてのオブジェクトを消去します Sub gcls() ' コントロールとプレースホルダー以外のすべてのオブジェクトを消去します
グラフィックスス・プロシージャの機能
InitializeGraphics
ワールド座標グラフィックス描画機能を利用するための初期設定を行います。
- 用紙サイズと余白の大きさを検出し、SetViewPortにより、A4縦の場合は描画範囲を(85.05, 99.25) - (510.25, 742.65)、 A4横の場合は描画範囲を(85.05, 99.25) - (756.85, 510.25)としています。
- 初期状態のワールド座標は左上から右下に向かう物理座標系で、余白を除く部分の左上が原点 (0, 0) になります。
- 線種を黒の細実線にします。
SetViewPort(ViewLeft, ViewTop, ViewRight, ViewBottom)
ビューポート(描画可能範囲)を設定します。
SetViewPort(x1, y1, x2, y2)により、描画範囲を用紙のスクリーン座標(x1, y1) - (x2, y2)の矩形内とします。
例えば、A4縦の用紙サイズの上半分のみを使用する場合は、SetViewPort(85, 99, 510, 372 )とします。
SetGraphicsWindow(WindowLeft, WindowTop, WindowRight, WindowBottom)
ビューポート(描画可能範囲)の左上と右下の点に対応するワールド座標系の座標を指定します。
初期状態では、座標系は左上から右下に向かう物理座標系で、余白を除く部分の左上が原点 (0, 0) になります。
右上が正の通常の座標系を指定するには、左下の座標の値が小さく(負に)なるように指定します。
例 SetGraphicsWindow(-4, 3, 4, -3)
Move(x, y)
ワールド座標系で、現在の座標を(x, y)に移動します。
DrawLineTo(x2, y2, Optional cLineRGB)
ワールド座標系で、現在位置と座標(x2, y2)の間に直線を描きます。線の色を指定しない場合はカレントカラーを使用します。
DrawLine(x1, y1, x2, y2, Optional cLineRGB)
ワールド座標系で、座標(x1, y1)と(x2, y2)の間に直線を描きます。線の色を指定しない場合はカレントカラーを使用します。