cp2023 40923137

  • Home
    • SMap
    • reveal
    • blog
  • About
  • Brython
  • w4-w5
    • 牛頓第二運動定律
    • mass-spring-damper 系統
    • Eulers Method 數值分析
  • w6-w8
    • 程式練習-1 程式碼練習
    • 程式練習-2 繪製國旗
  • w11
  • w12
  • w13
  • w15
  • w16
  • 課程心得
  • 課程工具
    • Replit
    • ChatGPT
    • Microsoft-Teams
程式練習-2 繪製國旗 << Previous Next >> w12

w11

#include <stdio.h>
#include <gd.h>
#include <math.h>

int main() {
// 設定圖像寬度和高度
int width = 800;
int height = 600;

// 創建一個TrueColor GD圖像
gdImagePtr img = gdImageCreateTrueColor(width, height);
gdImageAlphaBlending(img, 0);

// 打開輸出文件
FILE *outputFile = fopen("hellogd.png", "wb");
if (outputFile == NULL) {
fprintf(stderr, "Error opening the output file.\n");
return 1;
}

// 定義顏色
int red = gdImageColorAllocate(img, 255, 0, 0);
int blue = gdImageColorAllocate(img, 0, 0, 255);
int black = gdImageColorAllocate(img, 0, 0, 0);
int white = gdImageColorAllocate(img, 255, 255, 255);

// 長方形塗色
gdImageFilledRectangle(img, 0, 0, width, height, white);
gdImageFilledRectangle(img, 0, 0, (int)width / 4, (int)height / 4, blue);

// 橢圓形塗色
gdImageFilledEllipse(img, (int)width * 3 / 4, (int)height / 4, (int)width / 4, (int)width / 4, red);

// 橢圓形畫線
gdImageEllipse(img, (int)width * 3 / 4, (int)height * 3 / 4, (int)width / 4, (int)width / 4, red);

// 畫直線
gdImageLine(img, (int)width / 2, (int)height / 2, (int)width / 2, (int)height / 2 + 100, blue);

// 多邊形畫線
gdPoint points[4];
points[0].x = (int)width / 4;
points[0].y = (int)height * 3 / 4;
points[1].x = points[0].x + 100;
points[1].y = points[0].y;
points[2].x = points[1].x;
points[2].y = points[1].y + 100;
points[3].x = points[2].x - 100;
points[3].y = points[2].y;
gdImagePolygon(img, points, 4, black);

// 多邊形塗色
gdPoint points2[4];
points2[0].x = (int)width / 3;
points2[0].y = (int)height / 2;
points2[1].x = points2[0].x + 100;
points2[1].y = points2[0].y;
points2[2].x = points2[1].x;
points2[2].y = points2[1].y + 100;
points2[3].x = points2[2].x - 150;
points2[3].y = points2[2].y;
gdImageFilledPolygon(img, points2, 4, red);

// 將圖像保存為PNG文件
gdImagePngEx(img, outputFile, 9);

// 關閉文件和釋放內存
fclose(outputFile);
gdImageDestroy(img);

return 0;
}



程式練習-2 繪製國旗 << Previous Next >> w12

Copyright © All rights reserved | This template is made with by Colorlib