楕円または円を描くための、描画命令文
構文:
Circle [target,] [STEP] (x,y), radius[, [color][, [start][, [end][, [aspect][, F]]]]]
参考:N88 Basic の構文
Circle (x,y), radius [, color] [, start] [, end] [, aspect] [, f] [, color2]
color2:fを指定した場合、塗りつぶすためのブラシのカラーコードを指定できます。
N88 Basic からの移植例
注:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
パラメタ:
target (目標)
任意; 描画をするための、バッファを指定します。
STEP
座標を、相対座標で移動させるときに、使います。
(x, y)
楕円の中心の座標。
radius (半径)
円の半径 - 楕円に対しては、半長軸(つまり最長の半径)
color (色)
start (始点)
円を描画開始する角度
end (終点)
終点の角度
aspect (横縦比)
楕円の縦横比(高さと幅の比率)
F
塗りつぶし指定。
説明:
Circle は、与えたパラメタにしたがって、円、楕円、または弧(アーク)を、描画します。
図形の中心は、目標画面の(x, y)で指定した場所になります。
Radius は、図形の半径を指示します。
aspect レシオが 1.0 でない場合は、最も大きい半径を、ここで与えなければなりません。
STEP オプションは、x と y の位置を、現在の描画座標に対して、ずらす値を指定します。
start と
end は、角度で、
radians で指定します。
これらは、
-2*PI(−2π)から
2*PI(2π) の範囲の値を使うことができます。
ここで、PI は定数πで、およそ 3.141593 です。
負の角度を指定すると、その値は、符号を変更して、線は、中心からその弧の点まで描きます。
end の角度は、
start の角度より小さくてもかまいません。
start と
end を指定しない場合は、完全な円/楕円が描かれます。
start を指定して、
end を指定しない場合は、
end は、
2*PI(2π) として描画します。
end を指定して、
start を指定しない場合は、
start は
0.0 として描画します。
aspect は、横縦比(アスペクトレシオ)、または、x 方向の半径に対する、y 方向の半径の比率です。
もし省略されれば、
ScreenRes モードのためのデフォルトは、
1.0 です。その一方、
Screen (Graphics) モードについては、デフォルト値は、画面上に完全な円を描くのに必要な値です。ピクセル縦横比は保持されます。
この値は、以下のように計算できます:
ratio = (y_radius / x_radius) * pixel_aspect_ratio
比率 = (y_半径 / x_半径 ) * 画素横縦比
ここで、
pixel_aspect_ratio (画素横縦比)は、現在のモードの高さに対する、現在のモードの幅の比率です。横縦比4:3の標準のモニターを仮定しています。
横縦比(アスペクトレシオ)が、
1.0 未満の場合は、半径は、x軸方向の半径の長さを基準とした比率が設定されます。
横縦比に、
1.0 以上を指定すると、半径は、y軸の方向の半径を基準とした比率になります。
F は、塗りつぶし(fill)指定の旗(フラグ)です。
この旗(フラグ)を指定すると、円/楕円は、選択された色で、塗りつぶされます。
これは、完全な円/楕円を描いているときだけ有効です。弧を描いている場合には、この旗(フラグ)は効き目がありません。
Window や
View (Graphics) で設定される、カスタム座標システムセットは、描画に影響します。また、
View によって設定される切り取りも、適用されます。
Circle が、描画を終わったとき、描画カーソル位置は、指定された中心に設定されます。
注: Circle で描かれた曲線は、一部の場所で画素を描き過ぎる可能性があります。
したがって、透明色を(
GFX_ALPHA_PRIMITIVES オプション・フラグと組み合わせて)使うと、これらの、描き過ぎの画素の結果の(混合の)色が影響を受けます。
例:
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
' 640x480モード、256の色を設定
Screen 18
' 真ん中に、円を描きます
Circle (320,
240),
200,
15
' 塗りつぶした楕円を描きます
Circle (320,
240),
200,
2, , ,
0.
2, F
' 小さい弧を描きます
Circle (320,
240),
200,
4,
0.
83,
1.
67,
3
Sleep
例:
(透明色を使って円を塗る)
Merick さんがコミュニティ掲示板に投稿しているプログラムです。
QBとの違い:
- target は、FreeBASIC で新規です。
- FreeBASIC は、楕円/弧を描く方法が QB と異なったアルゴリズムを使っているので、全ての画素で、描画結果が、QB と等しい訳ではありません。
- 塗りつぶした円/楕円を描く F 旗(フラグ) は、FreeBASIC で追加されたものです。
参考: