#include<cstdio>
//基础命令,必须有
#include<stdio.h>
//作用与上一个相同
#include<cmath>
//为了使用sqrt(),sin()等函数
#include<string>
//为了使用字符串功能
#include<ctime>
//为了使用time()函数获取精确到秒的时间
#include<time.h>
//作用与上一个相同
#include<sys/time.h>
//为了使用gettimeoftoday()函数获取精确到毫秒的时间
#include<stdlib.h>
//为了使用rand()函数获取一个0~32767之间的随机数
#include<graphics.h>
//为了使用图形绘制功能
MOUSEMSG msg;
//用来使用GetMouseMsg()函数获取鼠标状态
time_t timep;
//用来获取精确度为秒的时间
struct timeval t1;
//用来获取微秒精度时间
void show()
//用来显示
{
char str[10];
//定义一个字符串,输出用
initgraph(600,480);
//设置区域大小,宽度在前
setorigin(0,0);
//设置原点位置,原点默认(0,0),向下向右为正
setbkcolor(WHITE);
//设置背景颜色,默认黑色,可输入0~16777215的颜色代码
cleardevice();
//清空屏幕
putpixel(4,7,RED);
//把第四行第七个颜色涂红,可输入0~16777215的颜色代码
setfillcolor(RED);
//把默认绘图填充颜色变红
setcolor(WHITE);
//把默认绘图线条颜色变白
circle(40,50,30);
//以(40,50)为中心画半径30的圆形,采用默认的白色
fillcircle(100,50,20);
//画实心圆,线条用默认白色,填充用默认红色
settextstyle(20,10,"仿宋");
//设置输出文字的字体,和字的宽度高度
settextcolor(WHITE);
//设置输出文字的颜色
setbkmode(TRANSPARENT);
//设置字体背景透明
outtextxy(150,20,"测试");
//以(150,20)为左上角输出“测试”
strcpy(str,"abc");
//把str的内容变为abc
str[3]='3';
//把str编号为3的元素变为字符“3”
str[4]=0;
//把str编号为4的元素变为终止符
outtextxy(150,50,str);
//输出“abc3"
}
void go()
{
int t,x,y,r;
char str[10];
long long t2,t3;
BeginBatchDraw();
//利用双缓存,防闪屏,需与末尾配合
if(MouseHit())
//如果鼠标有操作,那么执行
{
t=time(&timep);
//获取以秒为单位的时间
gettimeofday(&t1,NULL);
//把微秒精度时间赋值给结构体t1
t2=t1.tv_sec;
//应该与t相同
t3=t1.tv_usec;
//六位整数,单位是微秒
msg=GetMouseMsg();
//获取鼠标信息
x=msg.x;
//获取鼠标x坐标
y=msg.y;
//获取鼠标y坐标
putpixel(x,y,BLUE);
//把鼠标所在像素变蓝
r=rand()%10+11;
//获取一个11到20的随机数
circle(x,y,r);
//以鼠标为圆心,画一个半径随机11~20的圆形
if(msg.mkLButton)
//如果按下了左键
{
str[0]=t/10-10*(t/100)+'0';
//获取时间的十位
str[1]=t%10+'0';
//获取时间个位
str[2]=0;
//通过赋值0截断
settextcolor(YELLOW);
//设置输出文字的颜色
outtextxy(x,y,str);
//鼠标位置输出时间后两位
}
}
EndBatchDraw();
//利用双缓存,防闪屏,需与开头配合
}
int main()
//主函数,里面应该简洁
{
show();
//执行初始化操作
while(1)
{
go();
//不断运行
Sleep(2);
//等待2毫秒
}
return 0;
}
//以上你学到了:
//1.如何打开画图界面,设置大小,设置背景颜色,设置原点位置 ,如何清空
//2.如何给单像素赋予颜色,如何画各种颜色的空实心圆形
//3.如何给一个字符串赋值,并输出,如何输出不同大小颜色字体的文字,数字
//4.如何获取鼠标信息,随机数,不同精度的时间信息
//5.一个死循环程序最基本的结构,以及如何延时和防闪烁