Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語のfillpoly()関数とは?図形の塗りつぶし方法を解説

概要

C言語のグラフィックス用ヘッダーファイル「graphics.h」には、三角形、四角形、五角形、六角形などの多角形(ポリゴン)を描画し、その内部を塗りつぶすための fillpoly() 関数が用意されています。この関数は、線のみを描く drawpoly() 関数と同じ引数を受け取る点が特徴です。

構文

void fillpoly( int number, int *polypoints );

各引数の意味は以下の通りです。

  • number:頂点の数を n とした場合、「n + 1」個の点の数を指定します。
  • polypoints:「n × 2」個の整数からなる配列へのポインタです。

整数は2つで1組となり、それぞれ多角形上の1点の x 座標と y 座標を表します。

入力例

arr[] = {320, 150, 400, 250, 250, 350, 320, 150};

出力例

C言語のfillpoly()関数とは?図形の塗りつぶし方法を解説

引数の詳細な説明

fillpoly() の宣言には2つの引数があります。

第1引数の number は、n を多角形の頂点数としたときに「n + 1」個の点の数を指定します。第2引数の polypoints は「n × 2」個の整数列へのポインタであり、各ペアの整数が多角形上の1点の x 座標と y 座標に対応します。

頂点数が n であるにもかかわらず「n + 1」個の点を指定するのは、完全な閉じた図形を描くために、最初の点の座標と最後の点(n + 1番目)の座標を一致させる必要があるからです。

サンプルコード

// C言語による fillpoly() の実装例
#include <graphics.h>

// ドライバーコード
int main(){
    // gm1 はグラフィックモード。ピクセルを使って画像を生成する
    // ディスプレイモードです。DETECT は "graphics.h" ヘッダーで
    // 定義されているマクロです。
    int gd1 = DETECT, gm1;

    // 多角形の座標を指定
    int arr1[] = {320, 150, 400, 250, 250, 350, 320, 150};

    // initgraph はディスクからグラフィックスドライバーを読み込み、
    // グラフィックスシステムを初期化します。
    initgraph(&gd1, &gm1, "");

    // fillpoly 関数の呼び出し
    fillpoly(4, arr1);

    getch();

    // closegraph 関数はグラフィックモードを終了し、
    // グラフィックスシステムが確保したすべてのメモリを解放します。
    closegraph();

    return 0;
}

実行結果

C言語のfillpoly()関数とは?図形の塗りつぶし方法を解説

このプログラムを実行すると、指定した4点(始点と終点が同じ座標)をもとに、塗りつぶされた三角形が画面に描画されます。


  1. C言語でファイルを削除する方法:remove()関数の使い方を解説

    プログラミングにおいてファイル操作は非常に重要な要素であり、どのプログラミング言語にもファイルを扱うための関数やライブラリが用意されています。C言語にも、ファイルを削除するための標準ライブラリ関数 remove() が用意されています。この記事では、remove()関数の基本的な使い方から、戻り値の扱い方、実際のコード例までをわかりやすく解説します。C言語におけるremove()関数とはremove() 関数は、指定した名前のファイルを削除するために使用される関数です。この関数は標準入出力ヘッダーファイルである <stdio.h> 内で宣言されています。構文remove(file_

  2. 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: