แนวคิด
ไฟล์ส่วนหัว graphics.h มีฟังก์ชัน fillpoly() ซึ่งใช้สำหรับวาดและเติมสีรูปหลายเหลี่ยม เช่น สามเหลี่ยม สี่เหลี่ยม เหลี่ยมหกเหลี่ยม ฯลฯ ฟังก์ชันนี้ต้องการอาร์กิวเมนต์เดียวกับ drawpoly()
ไวยากรณ์
void fillpoly( int number, int *polypoints );
ในที่นี้ number ระบุ (n + 1) จำนวนจุด โดยที่ n คือจำนวนจุดมุม (vertices) ในรูปหลายเหลี่ยม และ polypoints ชี้ไปยังลำดับของจำนวนเต็ม (n*2) ตัว
อินพุต
arr[] = {320, 150, 400, 250, 250, 350, 320, 150};
เอาต์พุต

คำอธิบาย
การประกาศของ fillpoly() มีสองอาร์กิวเมนต์: number ระบุ (n + 1) จำนวนจุด โดย n คือจำนวนจุดมุมในรูปหลายเหลี่ยม อาร์กิวเมนต์ที่สอง polypoints ชี้ไปยังลำดับของจำนวนเต็ม (n * 2) ตัว ดังนั้นแต่ละคู่ของจำนวนเต็มให้พิกัด x และ y ของจุดบนรูปหลายเหลี่ยม เราระบุ (n + 1) จุดเพราะพิกัดจุดแรกควรเท่ากับจุดที่ (n + 1) เพื่อวาดรูปที่สมบูรณ์
ตัวอย่าง
#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;
}
ผลลัพธ์
