線を引きます。
構文:
Line [target,] [[STEP] (x1, y1)]-[STEP] (x2, y2) [, [color][, [B|BF][, style]]]
or
Line - (x2, y2) [, [color][, [B|BF][, style]]]
パラメタ:
target
描画するために、バッファを指定します。
STEP
開始座標が、相対的であることを示します。
(x1, y1)
線の、始点の座標
STEP
終点の座標が相対的であることを示します。
(x2, y2)
線の、終点の座標
color
カラー属性。
B|BF
箱枠か、塗りつぶした箱かのモードを指定します。
style
線のスタイル
解説:
直線か、2点間の箱、を描く、描画命令。
動作は、
SCREENSET で設定されている作業中のページか、または、指定された、
Get (描画)/
Put バッファ上で、行われます。
線 の座標は、
WINDOW と
View (描画) 命令を経由して、カスタム座標システムセットの影響を受けます。そして、
View (描画)で設定される、切り取り長方形に収まります。
STEP キーワードを座標の前に付けると、座標は、直前のグラフィックス・カーソル位置からの、相対座標になります。
B フラグを指定すると、線の代わりに、
(x1,y1)-(x2,y2) を、対角の頂点とした、長方形が描かれます。
BF フラグを指定すると、塗りつぶした長方形が描かれます。
Color は、モード特有の色属性を指示します。(詳細は、
Colorと
Screen (描画)を、参考ください)。
省略すると、
Color命令によって設定される、現在の前景色が使われます。
Style を指定すると、
Style に合わせた線画を描きます。
値は、16ビットのビット・マスクとして解釈します。そして、
Line は、画素描画をスキップするのに、それを使います。
(x1,y1)で始まって、スタイル・マスクの最も重要なビットが、チェックされます:
1 なら画素は描かれて、
0 ならスキップされます。
これは、他のビットでも、すべての線画素のために繰り返します。16 ビットがすべてチェックされるとき、マスクで、再利用されます。
Line を、
Line - (x2, y2) の形式で使うと、線は現在のカーソル位置から
Line で特定された
(x2,y2) 座標まで描かれます。
あるいは、
Point は、現在のカーソル位置を得るために使うことができます。
注: 連鎖使用や、
Line で描画されたボックスは、一部の場所で画素が重ね塗りされる可能性があります。
このため、透明色(
GFX_ALPHA_PRIMITIVES オプションフラグと組み合わせて)を使うと、これらの重ね塗り画素の結果の(ブレンドされた)色が、影響を受けます。
例:
注:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
'白い箱に、赤色の対角線を描いて、3秒間、待ちます。
Screen 13
Line (20,
20)-
(300,
180),
4
Line (140,
80)-
(180,
120),
15, b
Line -
( 200,
200 ),
15
Sleep 3000
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
'2本の線を、2つの異なった線種、2つの異なった色で、描きます
ScreenRes 320,
240
Line (10,
100)-
(309,
140),
4, B, &b1010101010101010
'赤色の点線の枠の箱
Line (20,
115)-
(299,
115),
9, , &b1111000011111111
'青色の点線
Line (20,
125)-
(299,
125),
10, , &b0000000011110000
'緑色の点線
Sleep
下は、FBの掲示板に掲載されていた、シェルピンスキーの三角形 を描くプログラムです。
表示が速すぎるので、始めは、
Sleep を有効にすると良いでしょう。
以下は、
Tiny Basic for Windows グラフィック操作編 で紹介いただいている「100個の長方形」を、
微修正して転載させていただいています。
以下は、三平武男さんの数式絵「レースクリスタル」です。
これは、F-BASIC のコードを微修正したものです。
以下は、
QB64 http://www.qb64.net/ の
サンプル・フォルダにあるプログラムを、FreeBASIC 用に微修正したものです。
QB64\programs\samples\misc\mandala.bas
QBとの違い:
参照: