FreeBASIC マニュアルのトップに戻る

FreeBASIC Circle

目次→描画ライブラリ参考→2次元 描画関数CIRCLE←オリジナル・サイト

Circle (円) 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

楕円または円を描くための、描画命令文

構文:
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 からの移植例
ActiveBasicV4 でコンパイルした、実行ファイルと、処理速度を比較してみましょう。
'$lang: "qb"
' '$lang: "qb"'$lang: "fblite" のいずれかを使います。

1000 'CLS 3
1002 Screen 12
1005 LINE (0,0)-(639,399),15,BF:LINE (0,280)-(639,399),1,BF
1010 FOR UX=1 TO 500
1020   X=INT(RND*600)+20
1030   Y=INT(RND*220)+40
1040   R=INT(RND*30)+20
1050   CIRCLE (X-2,300+(Y/5)),R,0,,,.2,F',0 黒
1060   CIRCLE (X-2,Y-8),R,0,,,,F',0 黒
1070   CIRCLE (X-5,Y-10),R-3,1,,,,F',1 青
1080   CIRCLE (X-10,Y-12),R-7,11,,,,F',5 水色 11 明るいシアン
1090   CIRCLE (X-15,Y-16),R-19,15,,,,F',7 灰色 15白
1100 NEXT UX
1150 sleep
N88 Basic からの移植例
パラメタ:
target (目標)
任意; 描画をするための、バッファを指定します。
STEP
座標を、相対座標で移動させるときに、使います。
(x, y)
楕円の中心の座標。
radius (半径)
円の半径 - 楕円に対しては、半長軸(つまり最長の半径)
color (色)
start (始点)
円を描画開始する角度
end (終点)
終点の角度
aspect (横縦比)
楕円の縦横比(高さと幅の比率)
F
塗りつぶし指定。

説明:
Circle は、与えたパラメタにしたがって、円、楕円、または弧(アーク)を、描画します。

target は、描画するためのバッファを指定します。
target は、ImagecreateGet (Graphics) で作成された画像の場合もあります。
省略すると、target のデフォルトは、画面の現在の作業ページになります。
(Screenset を参照下さい。)

図形の中心は、目標画面の(x, y)で指定した場所になります。

Radius は、図形の半径を指示します。
aspect レシオが 1.0 でない場合は、最も大きい半径を、ここで与えなければなりません。

Color は、色属性を指示します。これは、画面の表示色モードによって制限されます。(詳細は、ColorScreen(グラフィックス) を参照ください)。
省略すると、 Color 命令文で設定される、現在の前景色が、使われます。

STEP オプションは、xy の位置を、現在の描画座標に対して、ずらす値を指定します。

startend は、角度で、radians で指定します。
これらは、-2*PI(−2π)から 2*PI(2π) の範囲の値を使うことができます。 ここで、PI は定数πで、およそ 3.141593 です。
負の角度を指定すると、その値は、符号を変更して、線は、中心からその弧の点まで描きます。
end の角度は、start の角度より小さくてもかまいません。
startend を指定しない場合は、完全な円/楕円が描かれます。
start を指定して、end を指定しない場合は、end は、2*PI(2π) として描画します。
end を指定して、start を指定しない場合は、start0.0 として描画します。

aspect は、横縦比(アスペクトレシオ)、または、x 方向の半径に対する、y 方向の半径の比率です。
もし省略されれば、ScreenRes モードのためのデフォルトは、1.0 です。その一方、Screen モードについては、デフォルト値は、画面上に完全な円を描くのに必要な値です。ピクセル縦横比は保持されます。
この値は、以下のように計算できます:

ratio = (y_radius / x_radius) * pixel_aspect_ratio
比率 = (y_半径  / x_半径 ) * 画素横縦比

ここで、pixel_aspect_ratio (画素横縦比)は、現在のモードの高さに対する、現在のモードの幅の比率です。横縦比4:3の標準のモニターを仮定しています。
横縦比(アスペクトレシオ)が、1.0 未満の場合は、半径は、x軸方向の半径の長さを基準とした比率が設定されます。
横縦比に、1.0 以上を指定すると、半径は、y軸の方向の半径を基準とした比率になります。

F は、塗りつぶし(fill)指定の旗(フラグ)です。
この旗(フラグ)を指定すると、円/楕円は、選択された色で、塗りつぶされます。
これは、完全な円/楕円を描いているときだけ有効です。弧を描いている場合には、この旗(フラグ)は効き目がありません。

WindowView (Graphics) で設定される、カスタム座標システムセットは、描画に影響します。また、View によって設定される切り取りも、適用されます。
Circle が、描画を終わったとき、描画カーソル位置は、指定された中心に設定されます。

例:
' 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



image

QBとの違い:

参考:
2次元 描画関数に戻る

←リンク元に戻る プログラム開発関連に戻る


ページ歴史:2012-08-23 10:15:45
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

ホームページのトップに戻る

表示-非営利-継承