visual studio也能用graphics.h图形库

大家都知道,graphics.h是tc特有的函数库,在vs和vc中没有此函数库,那想要在vs和vc上使用graphics.h图形库,该怎么办呢?其实并不是没有方法,需要借助一个插件——Easyx图形库(下载地址:https://easyx.cn/),在安装此图形库中,可以安装一个EasyX_Help,帮助用户使用Easyx图形库,下面利用一个vs2019和Easyx图形库实现时钟形状:
运行结果
实现源码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <graphics.h>
#include <math.h>
#include <dos.h>
#include <conio.h>
#include<time.h>
#define pi 3.1415926
void draw(int a, int b, int c)
{
	float x, y;
	x = a * cos(b * c * pi / 180 - pi / 2) + 300;						/*确定横坐标*/
	y = a * sin(b * c * pi / 180 - pi / 2) + 240;						/*确定纵坐标*/
	setlinestyle(PS_SOLID, 3);									/*设置线形*/
	line(300, 240, x, y);									/*绘制时针或分针或秒针*/
}
void init()												/*自定义函数初始化时钟界面*/
{
	int i, r, x1, x2, y1, y2;								/*定义变量类型为基本整型*/

	setbkcolor(BLUE);										/*设置背景颜色为蓝色*/
	cleardevice();
	setcolor(GREEN);										/*设置绘图颜色为绿色*/
	setfillcolor(RED);									/*设置填充形式为红色实填充*/
	circle(300, 240, 200);									/*以(300,240)为圆心,200为半径画圆*/
	circle(300, 240, 205);									/*以(300,240)为圆心,200为半径画圆*/
	floodfill(300, 37, GREEN);								/*对指定区域进行填充*/
	circle(300, 240, 5);									/*以(300,240)为圆心,5为半径画圆*/
	for (i = 0; i < 60; i++)
	{
		if (i % 5 == 0)
		{
			setcolor(WHITE);								/*绘图颜色为白色*/
			setfillstyle(BS_SOLID, GREEN);							/*设置填充形式为绿色实填充*/
			r = 10;										/*r赋初值为10*/
			x2 = (200 - r) * cos(i * 6 * pi / 180) + 300;				/*确定要绘制的实心圆的横坐标*/
			y2 = (200 - r) * sin(i * 6 * pi / 180) + 240;				/*确定要绘制的实行圆的纵坐标*/
			solidcircle(x2, y2, 8);							/*指定位置绘制实行圆*/
		}
		else
		{
			r = 5;										/*r赋初值为5*/
			x1 = 200 * cos(i * 6 * pi / 180) + 300;
			y1 = 200 * sin(i * 6 * pi / 180) + 240;
			x2 = (200 - r) * cos(i * 6 * pi / 180) + 300;
			y2 = (200 - r) * sin(i * 6 * pi / 180) + 240;
			setcolor(GREEN);
			line(x1, y1, x2, y2);								/*画线*/
		}
	}
}
int main()
{
	int x, y;
	int gdriver, gmode;
	unsigned char h, m, s;
	struct tm* t;
	time_t te;
	time(&te);											/*将计算机时间写入结构体t中*/
	gdriver = DETECT;
	initgraph(640, 480);							/*图形方式初始化*/
	init();												/*调用init()函数*/
	t = localtime(&te);
	h = t->tm_hour;										/*h赋初值当前时数*/
	m = t->tm_min;										/*m赋初值当前分数*/
	s = t->tm_sec;										/*s赋初值当前秒数*/
	setlinecolor(RED);
	draw(150, h, 30);										/*画时针*/
	setlinecolor(WHITE);
	draw(170, m, 6);										/*画分针*/
	setlinecolor(YELLOW);
	draw(190, s, 6);										/*画秒针*/
	while (!_kbhit())
	{
		while (t->tm_sec == s)
			//gmtime(t);
			setcolor(RED);
		draw(190, s, 6);									/*清除前面画的秒针*/
		s = t->tm_sec;
		draw(190, s, 6);									/*画秒针*/
		if (t->tm_min != m)
		{
			setcolor(WHITE);
			draw(170, m, 6);								/*清除前面画的分针*/
			m = t->tm_min;
			draw(170, m, 6);								/*画分针*/
		} if (t->tm_hour != h)
		{
			setcolor(YELLOW);
			draw(150, h, 30);								/*清除前面画的时针*/
			h = t->tm_hour;
			draw(150, h, 30);								/*画时针*/
		}
	}
	_getch();
	closegraph();										/*退出图形界面*/
	return 0;
}

此文章是博主原创,如转载,请附上链接

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值