連続して画素を打点するための命令文
構文:
Draw [target,] cmd
パラメタ:
target
描画するバッファ
cmd
コマンドの順番を含む文字列
説明:
描画は、
SCREENSET を通して、現在、作業中のページ・セットに対して行われます。あるいは、指定されている、
target Get (描画)/
Put バッファに対して行われます。
複数の描画命令を一気に発行するのに、
Draw 命令文を使用できます。
すばやく図形を描くのに役立ちます。
コマンド文字列は、以下のコマンドを受け入れます:
画素をプロットする命令:
命令 | 内容 |
| 画素をプロットする命令: |
B | 任意の接頭語:動くが、描画しない。 |
N | 任意の接頭語:描くが、動かない。 |
M x,y |
指定されたスクリーンの位置に移動します。
'+' か '-' の符合が、x の前に付くと、
動きは現在のカーソル位置からの相対座標になります。
符合は、yの前に付けると、無効です。 |
U [n] | nユニット、上に移動。
nを省略すると、1移動します。 |
D [n] | nユニット、下に移動。
nを省略すると、1移動します。 |
L [n] | 左に、nユニット移動。
nを省略すると、1移動します。 |
R [n] | 右に、nユニット移動。
nを省略すると、1移動します。 |
E [n] | nユニット、右上に移動。
nを省略すると、1移動します。 |
F [n] | nユニット、右下に移動。
nを省略すると、1移動します。 |
G [n] | nユニット、左下に移動。
nを省略すると、1移動します。 |
H [n] | nユニット、左上に移動。
nを省略すると、1移動します。 |
| 着色する命令: |
C n | 現在の前景色を、nに変えます。 |
P p,b | 枠線色bの領域を、色pで、塗りつぶします。 |
| 比率と、回転のコマンド: |
S n | 現在のユニットの長さ(デフォルトは4)をセットします。
ユニット長4は、1画素と等しい値です。 |
A n | n*90度回転します。(nは0〜3の範囲) |
TA n | n度回転します。(nは、0〜359の範囲) |
| 余分なコマンド: |
X p | pでコマンドを実行します。そこでは、pがSTRING PTRです。 |
色、サイズ、角度を設定する命令は、その後のすべての
Draw 操作に影響します。
Draw は、
View (Graphics) 命令文で設定された現在のクリッピング領域を尊重しますが、その座標は、カスタム座標系の影響を受けません。
例:
注意:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
'画面モードを、320*200、256色に設定します
Screen 13
'描画せずに (50,50) に移動します
Draw "BM 50,50"
'描画色を 2 (緑) にします
Draw "C2"
'箱を描きます
Draw "R50 D30 L50 U30"
'箱の中に移動します
Draw "BM +1,1"
'境界色 2 のところまで、色 1 (青) で塗りつぶします
Draw "P 1,2"
Sleep
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
'' 画面に花を描きます
Dim As Integer i, a, c
Dim As String fill, setangle
'' それぞれの花びら(petal)の形
Dim As Const String petal = _
_
("X" &
VarPtr(setangle
)) _
'' 角度設定(angle-setting)の文字列にリンク
_
&
"C15" _
'' 輪郭の色 (白) を設定
&
"M+100,+10" _
'' 輪郭を描画
"M +15,-10" _
"M -15,-10" _
"M-100,+10" _
_
&
"BM+100,0" _
'' 花びらの中に移動
&
("X" &
VarPtr(fill
)) _
'' 花びらを塗りつぶす (塗りつぶしの文字列にリンクして)
&
"BM-100,0" '' 外に戻ります
'' 画面を設定します
ScreenRes 320,
240,
8
'' 中心に移動します
Draw "BM 160, 120"
'' 角度と色番号の初期値を設定します
a =
0: c =
32
For i =
1 To 24
'' 角度を設定して塗りつぶす命令文字列を作ります。
setangle =
"TA" & a
fill =
"P" & c &
",15"
'' 角度を設定して塗りつぶす文字列にリンクして、花びらの形を描きます
Draw petal
'' 少し遅延を掛けます。この行をコメント・アウトしたり、数字を小さくしてみて下さい
Sleep 100
'' 角度と色番号を増分します
a +=
15: c +=
1
Next i
Sleep
QB との違い:
- target は、FreeBASIC で追加されました。
- QBは、X p 命令を含む、特別なポインタ・キーワード VARPTR$ を使用しました。
- FBは、現在、サブ画素移動を許しません:
すべての動きは、最も近い整数座標に、丸められます。
参照: