C言語のarc()関数とは?円弧を描く方法を初心者向けに解説
C言語では、指定した中心座標・半径・角度をもとに、円の一部(円弧)を描画することができます。このとき使用するのがarc()関数です。
arc()関数は、C言語のグラフィック描画用ライブラリであるgraphics.hに含まれています。graphics.hには、出力画面上に図形を描くためのさまざまなメソッドが用意されており、arc()関数はその中でも円弧の描画を担当します。
arc()関数の構文
void arc(int x, int y, int startangle, int endangle, int radius);
それでは、各引数がどのような役割を持つのか、また関数からどのような結果が得られるのかを詳しく見ていきましょう。
パラメータ(引数)の説明
x(中心のX座標)
型:int
arc()で描く円弧の中心となる点のX座標を指定します。
y(中心のY座標)
型:int
円弧の中心となる点のY座標を指定します。
startangle(開始角度)
型:int
円弧の描画を開始する角度を指定します。角度は度数法(0〜360)で表され、反時計回りに測られます。
endangle(終了角度)
型:int
円弧の描画を終了する角度を指定します。startangleからendangleまでの範囲が実際に描画されます。
radius(半径)
型:int
描画する円弧の半径をピクセル単位で指定します。
サンプルコード
#include <graphics.h>
int main(){
int gd = DETECT, gm;
int x = 250;
int y = 250;
int start_angle = 155;
int end_angle = 300;
int radius = 100;
initgraph(&gd, &gm, "");
arc(x, y, start_angle, end_angle, radius);
getch();
closegraph();
return 0;
}コードの解説
このプログラムでは、画面上の座標(250, 250)を中心として、半径100ピクセルの円弧を155度から300度までの範囲で描画しています。
処理の流れは以下のとおりです。
1. グラフィックドライバの初期化:initgraph()関数を使ってグラフィックスシステムを初期化します。gdにDETECTを指定することで、システムに適したドライバが自動的に選択されます。
2. 円弧の描画:arc()関数に中心座標・開始角度・終了角度・半径を渡して、円弧を出力画面に描きます。
3. 表示の維持:getch()関数でキー入力を待ち、描画結果がすぐに消えないようにしています。
4. 終了処理:closegraph()関数でグラフィックスモードを終了し、メモリを解放してプログラムを終了します。
まとめ
arc()関数を使えば、中心座標・角度・半径を自由に指定して円弧を簡単に描画できます。graphics.hライブラリはBorland C++などの古い開発環境で主に使われてきましたが、図形描画の基本的な考え方を学ぶうえで今なお有用な教材です。circle()関数やline()関数など、他の描画関数と組み合わせることで、より複雑な図形も表現できるようになります。
-
C言語の再帰関数とは?階乗計算プログラムでわかりやすく解説
再帰関数(Recursive Functions)とは、何かを自分自身を使って定義する手法のことで、具体的には「関数の本体の中で自分自身を再度呼び出す関数」を指します。一見すると不思議な仕組みですが、問題をより小さな単位に分割して解決する際に非常に強力なテクニックとなります。 再帰関数の基本概念 ここでは、整数 N の階乗 を計算する関数 fact() を例に説明します。階乗とは、1 から N までのすべての整数を掛け合わせた値のことです。 この関数の動作は以下のとおりです。 fact() が引数 0 または 1 で呼び出された場合、関数は 1 を返します(これを「基底条件」と呼びます)。
-
C言語のbar()関数とは?グラフィックスで塗りつぶし矩形を描く方法
bar() 関数は、C言語のグラフィックス描画に使用される関数の一つです。図形を描くための各種関数がまとめられた graphics.h ヘッダーファイルの中に定義されており、このヘッダーをインクルードすることで利用できます。bar()関数の構文void bar(int left, int top, int right, int bottom);bar() 関数は、棒グラフの「バー」のような2次元の図形、すなわち塗りつぶされた長方形を描画するために使われます。引数は4つあり、それぞれ以下の座標を指定します。left / top: 長方形の左上隅の (X, Y) 座標right / bottom: