一.initgraph函数(讲解)转自:https://blog.csdn.net/zhao_fu_lu/article/details/23961111
1.initgraph():初始化图形系统
(1) 函数原型:void far initgraph(int far *graphdriver,int far *graphmode,char far *pathtodriver);
graphdriver:上涨指向图形驱动序号变量的指针
graphmode:在graphdriver确定后,指向图形显示模式序号变量的指针
pathtodriver:表示存放图形驱动文件的路径
(2) 头文件:graphics.h
不同的显示器适配器有不同的图形分辨率(即使是同一个显示器适配器,在不同模式下也有不同的分辨率)
在未作图之前,必须根据显示器适配器种类将显示器设置成为某种图形格式。
在未设置图形格式之前,微机系统默认屏幕为文本格式(80列,25行字符模式),此时所有的图形函数都不能工作。
设置屏幕为图形模式,可以用下列图形化初始函数:void far initgraph(int far *gdriver,int far *gmode,char *path);
gdriver和gmode表示图形驱动.显示模式,path是指图形驱动程序所在的目录路径。
图形驱动程序由Turbo C出版商提供,文件扩展名为.BGI。根据不同的图形适配器有不同的图形驱动程序。
(3)初始化绘图环境
HWWD initgraph(
int width;//绘制环境的宽度
int height;//绘制环境的高度
int flag=NULL//绘制环境的样式,默认为NULL,可以为以下值
);
值 NOCLOSE NOMINIMIZE SHOWCONSOLE
含义 禁用绘图环境的关闭按钮 禁用绘图环境的最小化按钮 保留原控制台窗口
2.Turbo C提供了一个自动检测显示器硬件的函数,其调用格式为:
void far detectgraph(int *gdriver,*gmode);其中图形驱动和显示模式与上面相同
#include
int main()
{
int gdriver, gmode;
gdriver=VGA;
gmode=VGAHI;
initgraph(&gdriver, &gmode, "c:\\tc");
bar3d(100, 100, 300, 250, 50, 1); /*画一长方体*/
getch();
closegraph();}
注释:bar3d三维条形图 用法:void far bar3d{int left,int top,//三维空间矩形长条图正面的左上角坐标
int right,int bottom,//三维空间矩形长条图正面的右下角图标
int depth,//三维空间矩形长条图的深度(即阴影)
int topflag//设置是否绘制三维空间长条图的顶部
};
//自动进行硬件测试后进行图形初始化
#include
int gdriver, gmode; /int gdriver=DETECT,gmode;
detectgraph(&gdriver, &gmode); /*自动测试硬件*/}
上述程序中先对图形显示器自动检测,然后再用图形初始化函数进行初始化设置,但Turbo C提供了一种更简单的方法,即用gdriver=DETECT语句后再跟initgraph()函数就行了。采用了这种方法后,上例可改为:上述注解
另外,Turbo C提供了退出图形状态的函数closegraph(),其调用格式为void far closegraph();调用该函数后可退出图形杂状态而进入文本格式(Turbo C默认方式),并释放用于保存驱动程序和字体的系统内存。
#include "graphics.h"
#include "stdio.h"
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
/* initialize graphics mode */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* return with error code */
}
/* draw a line */
line(0, 0, getmaxx(), getmaxy());
/* clean up */
getch();
closegraph();
return 0;
}
二.在绘制图形色彩时候遇到的随机函数:rand函数(线性同余法)(产生随机数)和srand(初始化随机种子)
转自:https://blog.csdn.net/github_37287822/article/details/77392130
头文件:
(1)定义函数:int rand(void)
函数功能:产生随机数
函数说明:因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以,在一定的范围里可看成是随机的。
rand()会返回一随机数值,范围在0至RAND_MAX 间。
在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。
返回值: 返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。且0-RAND_MAX每个数字被选中的机率是相同的。
rand()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。
(2)srand函数
头文件:
定义函数:void srand(unsigned int seed);
函数说明:srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用getpid()或者time(0)的返回值来当作seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
三.
(1)
DLL 文件: winmm 或者 winmm.dll
DLL 名称: Windows Multimedia API
描述:
winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄。
#pragma comment( comment-type ,["commentstring"] )
comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一
commentstring是一个提供为comment-type提供附加信息的字符串。
playsound的具体用法转自:https://blog.csdn.net/ccx_john/article/details/12494129
(2)
RGB(red,green,blue)
RGB函数就是(1*R+256*G+65536*B)
文字:settextcolor(YELLOW);(颜色)
settextstyle(,,L”字体“);//高,宽
outtextsy(x,y,L”“); / /out(输出).text(文字).指定坐标输出文字
四.#include
转自: http://blog.csdn.net/chenyiming_1990/article/details/8682552
两个类型:
time_t:表示距离 UTC 时间 1970-01-01 00:00:00 的秒数。也叫做日历时,类型是 long
clock_t: 只用于程序计时,貌似其他的没它什么事。
struct tm:通常用于存储本地时。
五.