Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฟังก์ชัน fillpoly() ใน C


แนวคิด

ตอนนี้ไฟล์ส่วนหัว graphics.h มีฟังก์ชัน fillpoly() ซึ่งใช้ในการวาดและเติมรูปหลายเหลี่ยม เช่น สามเหลี่ยม สี่เหลี่ยมผืนผ้า ห้าเหลี่ยม หกเหลี่ยม เป็นต้น ดังนั้นฟังก์ชันนี้จึงจำเป็นต้องมีอาร์กิวเมนต์เดียวกันกับ drawpoly()

ไวยากรณ์

void fillpoly( int number, int *polypoints );

ในกรณีนี้ ตัวเลขจะระบุ (n + 1) จำนวนจุด โดยที่ n คือจำนวนจุดยอดในรูปหลายเหลี่ยมและจุดหลายจุดจะชี้ไปที่ลำดับของจำนวนเต็ม (n*2)

ป้อนข้อมูล

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

ผลผลิต

ฟังก์ชัน fillpoly() ใน C

คำอธิบาย

ดังนั้นการประกาศของ fillpoly() จึงมีสองอาร์กิวเมนต์:number ระบุ (n + 1) จำนวนจุดที่ n ถูกระบุเป็นจำนวนจุดยอดในรูปหลายเหลี่ยม อาร์กิวเมนต์ที่สอง เช่น polypoints ชี้ไปที่ลำดับของ (n * 2) จำนวนเต็ม ด้วยเหตุนี้ จำนวนเต็มแต่ละคู่จึงให้พิกัด x และ y ของจุดบนรูปหลายเหลี่ยม ดังนั้นเราจึงระบุ (n + 1) จุด เนื่องจากพิกัดจุดแรกควรเท่ากับ (n + 1)th สำหรับการวาดรูปที่สมบูรณ์

ตัวอย่าง

// C Implementation for fillpoly()
#include <graphics.h>
// driver code
intmain(){
   // Here gm1 is Graphics mode which is a computer display mode that
   // produces image using pixels. DETECT is a macro defined in
   // "graphics.h" header file
   intgd1 = DETECT, gm1;
   // Different coordinates for polygon
   intarr1[] = {320, 150, 400, 250, 250, 350, 320, 150};
   // Here initgraph initializes the
   // graphics system by loading a
   // graphics driver from disk
   initgraph(&gd1, &gm1, "");
   // fillpoly function
   fillpoly(4, arr1);
   getch();
   // Here closegraph function closes the
   // graphics mode and deallocates
   // all memory allocated by
   // graphics system .
   closegraph();
   return0;
}

ผลลัพธ์

ฟังก์ชัน fillpoly() ใน C