编译器 :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.五个五角星的坐标各不相同,所以采用五个函数分别表示
五个星星的各个点坐标需要准确,否则出来的不是五角星
作者本人在纸上画的图不太准确,导致画出来的星星奇奇怪怪的
这张图根据窗口的大小,每个小方格长度是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");
}
制作到这里已经结束了!
欢迎各位读者的补充!