圣诞树Easyx绘图

这是用VS2019借用easyx图形库写的代码,能力有限

easyx点此官网下载安装

#include<easyx.h>
#include<conio.h>
#include<math.h>
#include <time.h>
#include<mmsystem.h>
#pragma comment(lib,"winmm.lib")

#define PI 3.14
#define X 640
#define Y 480

void music() {
	mciSendString(_T("open  ./music/花海.mp3"), NULL, 0, NULL);//打开音乐
	mciSendString(_T("play  ./music/花海.mp3 repeat"), NULL, 0, NULL);//播放音乐
}
void tree() {
	cleardevice();
	settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	settextstyle(30, 0, _T("宋体"));
	outtextxy(rand() % X - 10, rand() % Y - 10, _T("❤"));
	outtextxy(rand() % X - 10, rand() % Y - 10, _T("❤"));
	outtextxy(rand() % X - 10, rand() % Y - 10, _T("❤"));
	outtextxy(rand() % X - 10, rand() % Y - 10, _T("❤"));
	outtextxy(rand() % X - 10, rand() % Y - 10, _T("❤"));
	//第一个三角形
	setlinecolor(RGB(144, 238, 144));
	setfillcolor(RGB(34, 139, 34));
	POINT pts1[] =
	{
		{X / 2,Y / 10},//顶点
		{2 * X / 5,19 * Y / 100},//左点
		{3 * X / 5,19 * Y / 100}//右点
	};
	solidpolygon(pts1, 3);
	// 绘制五角星
	POINT pts[5];
	double a = PI / 2;
	for (int i = 0; i < 5; i++)
	{
		pts[i].x = int(X / 2 + cos(a) * 23);
		pts[i].y = int(Y / 10 - sin(a) * 23);
		a += PI * 4 / 5;
	}
	setpolyfillmode(WINDING);
	setfillcolor(RGB(255, 230, 0));
	solidpolygon(pts, 5);
	//第2个三角形
	setlinecolor(RGB(144, 238, 144));
	setfillcolor(RGB(34, 139, 34));
	POINT pts2[] =
	{
		{X / 2,3 * Y / 20 },//顶点
		{8 * X / 25,3 * Y / 10},//左点
		{17 * X / 25,3 * Y / 10}//右点
	};
	solidpolygon(pts2, 3);
	//第三个三角形
	POINT pts3[] =
	{
		{X / 2,6 * Y / 25 },//顶点
		{1 * X / 4,43 * Y / 100},//左点
		{3 * X / 4,43 * Y / 100}//右点
	};
	solidpolygon(pts3, 3);
	//树干
	setfillcolor(RGB(139, 69, 19));
	solidrectangle(9 * X / 20, 43 * Y / 100, 11 * X / 20, 7 * Y / 10);
}
void bulb() {
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(12 * X / 25, Y / 10 + (19 * Y / 100 - Y / 10), 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(45 * X / 100, Y / 10 + 13 * Y / 100, 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(49 * X / 100, 28 * Y / 100, 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(44 * X / 100, 31 * Y / 100, 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(13 * X / 25, Y / 10 + (19 * Y / 100 - Y / 10), 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(55 * X / 100, Y / 10 + 13 * Y / 100, 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(54 * X / 100, 29 * Y / 100, 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(53 * X / 100, 34 * Y / 100, 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(40 * X / 100, 36 * Y / 100, 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(35 * X / 100, 40 * Y / 100, 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(50 * X / 100, 37 * Y / 100, 5);
	setfillcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
	solidcircle(65 * X / 100, 40 * Y / 100, 5);
}

int main() {
	initgraph(X, Y);
	srand((unsigned)time(NULL));//随机数种子
	setbkcolor(WHITE);
	setbkmode(TRANSPARENT);//字体背景透明
	music();
	BeginBatchDraw();
	while (1) {
		tree();
		bulb();
		FlushBatchDraw();
		Sleep(500);//延迟0.5秒
	}
	_getch();
	closegraph();
	return 0;
}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值