关于五角星的制作(C++)

编译器 :visual studio

这里需要用到很多画图工具,所以需要 EasyX Graphics Library for C++下载一个图形库,完成后安装在 VS上,So easy!

流程:

①建立窗口启动

②窗口全部填成红色打底

③在红色背景下转换成黄笔画五角星

④最后照片平铺上去

图形库头文件 "graphics.h"

1.建立窗口大小 initgraph(窗口长度,窗口宽度)

因为旗帜 长:宽大多数采用5:3,3:2

这里使用1000:600——initgraph(1000,600)

2.原本窗口就是一个矩形,可以通过画一个实心矩形来使背景呈现红色
//画图函数
原本考虑的用HDC、HWND库函数来画,发现太复杂

改换成

void solid_rectangle()
{
    setfillcolor(RED);
    solidrectangle(0, 0, 1000, 600);
}


setfillcolor是实心矩形的颜色

solidrectangle(a, b, x, y)

ps:a、b是指上左点的横纵坐标

        x、y是指右下点的横纵坐标

3.五个五角星的坐标各不相同,所以采用五个函数分别表示

五个星星的各个点坐标需要准确,否则出来的不是五角星

作者本人在纸上画的图不太准确,导致画出来的星星奇奇怪怪的

关于五角星的制作(C++)_第1张图片

这张图根据窗口的大小,每个小方格长度是30,也就能找到每个五角星的点坐标

坐标找到以后也需要用画笔将他们连起来

setlinecolor(YELLOW);   
setlinestyle(PS_SOLID, 2);
line(150, 60, 100, 225); 

setlinecolor 是画笔的颜色

setlinestyle是画笔的种类,后面是画笔的宽度

line从起点坐标到终点坐标

void solidstar_1()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(150, 60, 100, 225);
    Sleep(x);
    line(100, 225, 240, 120);
    Sleep(x);
    line(240, 120, 60, 120);
    Sleep(x);
    line(60, 120, 210, 225);
    Sleep(x);
    line(210, 225, 150, 60);
    Sleep(x);
    
}
void solidstar_2()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(312, 35, 275, 75);
    Sleep(x);
    line(275, 75, 330, 60);
    Sleep(x);
    line(330, 60, 275, 40);
    Sleep(x);
    line(275, 40, 305, 90);
    Sleep(x);
    line(305, 90, 312, 35);
}
void solidstar_3()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(345, 90, 355, 150);
    Sleep(x);
    line(355, 150, 380, 100);
    Sleep(x);
    line(380, 100, 330, 125);
    Sleep(x);
    line(330, 125, 390, 135);
    Sleep(x);
    line(390, 135, 345, 90);
}
void solidstar_4()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(360, 180, 342, 235);
    Sleep(x);
    line(342, 235, 390, 200);
    Sleep(x);
    line(390, 200, 330, 200);
    Sleep(x);
    line(330, 200, 380, 235);
    Sleep(x);
    line(380, 235, 360, 180);
}
void solidstar_5()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(312, 240, 275, 285);
    Sleep(x);
    line(275, 285, 330, 270);
    Sleep(x);
    line(330, 270, 275, 260);
    Sleep(x);
    line(275, 260, 305, 300);
    Sleep(x);
    line(305, 300, 312, 240);
}

里面的Sleep()是暂停的意思,为了能够画出来连笔的效果,都是暂停的300(0.3s)

4.最后照片平铺上去

这里需要将照片发送到创建的代码文件里(可以通过VS上的打开文件所在位置)

IMAGE image[2];
loadimage(&image[0], "./china.jpg", 1000, 600);
putimage(0, 0, &image[0]);
system("pause");


china是图片名,.jpg是图片的格式,1000,600是图片的大小,正好是窗口的大小

完整代码:

#include
#include
#include
using namespace std;
const int x = 300;
void solid_rectangle()
{
    setfillcolor(RED);
    solidrectangle(0, 0, 1000, 600);
}
void solidstar_1()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(150, 60, 100, 225);
    Sleep(x);
    line(100, 225, 240, 120);
    Sleep(x);
    line(240, 120, 60, 120);
    Sleep(x);
    line(60, 120, 210, 225);
    Sleep(x);
    line(210, 225, 150, 60);
    Sleep(x);
    
}
void solidstar_2()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(312, 35, 275, 75);
    Sleep(x);
    line(275, 75, 330, 60);
    Sleep(x);
    line(330, 60, 275, 40);
    Sleep(x);
    line(275, 40, 305, 90);
    Sleep(x);
    line(305, 90, 312, 35);
}
void solidstar_3()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(345, 90, 355, 150);
    Sleep(x);
    line(355, 150, 380, 100);
    Sleep(x);
    line(380, 100, 330, 125);
    Sleep(x);
    line(330, 125, 390, 135);
    Sleep(x);
    line(390, 135, 345, 90);
}
void solidstar_4()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(360, 180, 342, 235);
    Sleep(x);
    line(342, 235, 390, 200);
    Sleep(x);
    line(390, 200, 330, 200);
    Sleep(x);
    line(330, 200, 380, 235);
    Sleep(x);
    line(380, 235, 360, 180);
}
void solidstar_5()
{
    setlinecolor(YELLOW);
    setlinestyle(PS_SOLID, 2);
    line(312, 240, 275, 285);
    Sleep(x);
    line(275, 285, 330, 270);
    Sleep(x);
    line(330, 270, 275, 260);
    Sleep(x);
    line(275, 260, 305, 300);
    Sleep(x);
    line(305, 300, 312, 240);
}
int main()
{
    IMAGE image[2];
    initgraph(1000, 600);
    solid_rectangle();
    solidstar_1();
    solidstar_2();
    solidstar_3();
    solidstar_4();
    solidstar_5();
    Sleep(500);
    loadimage(&image[0], "./china.jpg", 1000, 600);
    putimage(0, 0, &image[0]);
    system("pause");
}

制作到这里已经结束了!

欢迎各位读者的补充!

你可能感兴趣的:(c++,windows,开发语言)