一、項目介紹
這是一個C語言繪制中國國旗的程序,為祖國母親慶生!
編譯環(huán)境:visual c++ 6.0
第三方庫:Easyx2022 注意需要提前安裝easyX,如沒有基礎可以先了解easyX圖形編程
二、運行截圖
三、代碼思路
1.引入easyx頭文件
#include <easyx.h>
2.宏定義
#define PI 3.14
3.角星的外接圓半徑和起始角度作為參數
void fivePointedStar(int radius, double startAngle) { double delta = 2 * PI / 5; // 增量為一個圓的5分之一 POINT points[5]; // 長度為5的POINT數組,用于存儲5個點 for (int i = 0; i < 5; i++) { points[i].x = cos(startAngle + i * delta * 2) * radius; // 計算x坐標 points[i].y = sin(startAngle + i * delta * 2) * radius; // 計算y坐標 } solidpolygon(points, 5); }
4.主函數
int main(void) { int width = 900; int height = width / 3 * 2; // 高度為寬度的2/3 int grid = width / 3 / 15; // 網格寬度 initgraph(800, 420); // 創(chuàng)建窗體設置背景色 setbkcolor(BLACK); cleardevice(); setcolor(YELLOW); // 文本顏色 setbkcolor(BLACK); // 文本背景色 settextstyle(100,0,"楷體"); // 文本高度和字體 outtextxy(600, 10, "喜"); // 文本位置和內容 outtextxy(600, 110, "迎"); // 文本位置和內容 outtextxy(600, 210, "國"); // 文本位置和內容 outtextxy(600, 310, "慶"); // 文本位置和內容 outtextxy(700, 10, "舉"); // 文本位置和內容 outtextxy(700, 110, "國"); // 文本位置和內容 outtextxy(700, 210, "歡"); // 文本位置和內容 outtextxy(700, 310, "慶"); // 文本位置和內容 setcolor(YELLOW); setbkcolor(BLACK); settextstyle(20,0,"楷體"); outtextxy(650, 400, "Dotcpp.com"); setfillcolor(RED); solidrectangle(10,10,600,400); setaspectratio(1, -1); // 翻轉坐標軸,設置填充顏色為黃色 setfillcolor(YELLOW); setpolyfillmode(WINDING); getchar(); closegraph(); return 0; }
完成
四、完整源碼
#include <stdio.h> #include <easyx.h> #include <math.h> #include <graphics.h> // 引用圖形庫頭文件 #include <conio.h> #include<time.h> #define PI 3.14 void fivePointedStar(int radius, double startAngle)// 角星的外接圓半徑和起始角度作為參數,由調用者決定 { double delta = 2 * PI / 5; // 增量為一個圓的5分之一 POINT points[5]; // 長度為5的POINT數組,用于存儲5個點 for (int i = 0; i < 5; i++) { points[i].x = cos(startAngle + i * delta * 2) * radius; // 計算x坐標 points[i].y = sin(startAngle + i * delta * 2) * radius; // 計算y坐標 } solidpolygon(points, 5); } int main(void) { int width = 900; int height = width / 3 * 2; // 高度為寬度的2/3 int grid = width / 3 / 15; // 網格寬度 initgraph(800, 420); // 創(chuàng)建窗體設置背景色 setbkcolor(BLACK); cleardevice(); setcolor(YELLOW); // 文本顏色 setbkcolor(BLACK); // 文本背景色 settextstyle(100,0,"楷體"); // 文本高度和字體 outtextxy(600, 10, "喜"); // 文本位置和內容 outtextxy(600, 110, "迎"); // 文本位置和內容 outtextxy(600, 210, "國"); // 文本位置和內容 outtextxy(600, 310, "慶"); // 文本位置和內容 outtextxy(700, 10, "舉"); // 文本位置和內容 outtextxy(700, 110, "國"); // 文本位置和內容 outtextxy(700, 210, "歡"); // 文本位置和內容 outtextxy(700, 310, "慶"); // 文本位置和內容 setcolor(YELLOW); setbkcolor(BLACK); settextstyle(20,0,"楷體"); outtextxy(650, 400, "Dotcpp.com"); setfillcolor(RED); solidrectangle(10,10,600,400); setaspectratio(1, -1); // 翻轉坐標軸,設置填充顏色為黃色 setfillcolor(YELLOW); setpolyfillmode(WINDING); setorigin(grid * 5, grid * 5); // 大五角星 fivePointedStar(grid * 3, PI / 2); setorigin(grid * 10, grid * 2); // 小五角星1 double startAngle = atan(3.0 / 5.0) + PI; fivePointedStar(grid, startAngle); setorigin(grid * 12, grid * 4); // 小五角星2 startAngle = atan(1.0 / 7.0) + PI; fivePointedStar(grid, startAngle); setorigin(grid * 12, grid * 7); // 小五角星3 startAngle = -atan(2.0 / 7.0) + PI; fivePointedStar(grid, startAngle); setorigin(grid * 10, grid * 9); // 小五角星4 startAngle = -atan(4.0 / 5.0) + PI; fivePointedStar(grid, startAngle); getchar(); closegraph(); return 0; }
C語言網提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程