一、fillpoly簡介
fillpoly是C++中一個用來填充多邊形的函數,其主要作用是將多邊形區域內的顏色填充為指定的顏色。fillpoly函數需要傳入以下幾個參數:
void fillpoly(int num_points, const int* points, int color);
其中,num_points為多邊形的點數,points是一個長度為num_points * 2的數組,數組中存儲了多邊形各個點的坐標,color為多邊形填充的顏色。
使用fillpoly函數需要注意以下幾點:
- points數組中的點必須按順序給出,即按照多邊形邊緣逆時針方向的順序。
- points數組中每個點的坐標數據必須為int類型。
- fillpoly函數只能用於填充凸多邊形,對於非凸多邊形需要使用其他方法。
二、繪製正方形
下面通過繪製一個正方形來演示如何使用fillpoly函數。
1. 基本思路
繪製正方形的基本思路是:先確定正方形的一個頂點坐標,然後按照順時針方向計算出正方形的其他三個頂點坐標,最後將這四個頂點坐標作為參數調用fillpoly函數即可。
2. 代碼示例
下面是一個使用fillpoly函數繪製正方形的示例代碼:
#include<iostream> #include<graphics.h> using namespace std; int main() { int gd = DETECT, gm; initgraph(&gd, &gm, ""); int x1 = 200, y1 = 100; // 正方形左上角頂點坐標 int x2 = 300, y2 = 200; // 正方形右下角頂點坐標 int points[] = {x1, y1, x1, y2, x2, y2, x2, y1, x1, y1}; // 正方形的五個頂點坐標 setfillstyle(SOLID_FILL, YELLOW); // 將填充顏色設置為黃色 fillpoly(5, points, getcolor()); // 繪製正方形 getchar(); // 等待按鍵退出 closegraph(); return 0; }
上述代碼中,setfillstyle函數設置了填充顏色為黃色,fillpoly函數使用五個頂點坐標繪製了一個正方形。
三、繪製五角星
下面演示如何使用fillpoly函數繪製一個五角星。
1. 基本思路
繪製五角星的基本思路是:先定義一個圓的圓心坐標和半徑,然後將圓根據同心圓的原理分成五個部分,每個部分的邊緣與圓的相交點即為五角星的一個頂點。最後將這五個頂點坐標作為參數調用fillpoly函數即可。
2. 代碼示例
下面是一個使用fillpoly函數繪製五角星的示例代碼:
#include<iostream> #include<graphics.h> using namespace std; int main() { int gd = DETECT, gm; initgraph(&gd, &gm, ""); int xc = 300, yc = 200; // 圓心坐標 int r = 100; // 半徑 int points[10]; for (int i = 0; i < 5; ++i) { float angle = i * 72 * 3.14 / 180; points[i * 2] = xc + r * sin(angle); points[i * 2 + 1] = yc - r * cos(angle); } setfillstyle(SOLID_FILL, GREEN); // 將填充顏色設置為綠色 fillpoly(5, points, getcolor()); // 繪製五角星 getchar(); // 等待按鍵退出 closegraph(); return 0; }
上述代碼中,setfillstyle函數設置了填充顏色為綠色,fillpoly函數使用五個頂點坐標繪製了一個五角星。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/239430.html