#include "graphics.h" //已经包含了conio.h,windows.h
int main(void)
{
initgraph(800,600); //建立窗口
画点函数:putpixel(x坐标,y坐标,点的颜色);
putpixel(random(800), random(600), random(255*255*255));//随即变化
//此处编写功能语句
getch(); //等待用户按下任意键
closegraph(); //关闭图形窗口
return 0;
}
两个随机函数:
(1) int random(int iNum);s
随机产生一个[0,100)范围内的整数赋值给iResult。
例:initgraph(800,600);
putpixel(random(800), random(600), GREEN);
(2) void randomize(void);
功能:对随机函数random进行初始化。
若程序需要用随机函数random,则此函数必须在random函数之前调用,且只需要调用一次。
例:
randomize( );
iResult = random(100);
-----------------------------------------------------------------------------
/***如何在图形窗口中显示文字(printf函数仅能在控制台窗口中显示文字,不能用于图形窗口)
用outtextxy函数在图形窗口中显示文字
1、第一种用法:void outtextxy(int iX, int iY, char cCh);功能:在窗口内(iX,iY)处,显示字符。
例如:outtextxy(400,300,'A');
例如:char c = 'H';
outtextxy(200,100,c);
2、第二种用法:void outtextxy(int iX, int iY,"文字内容"); 功能:在窗口内(iX,iY)处,显示文字内容。
例如:outtextxy(100,400,"菜菜是一只xxx");
3、第三种用法:void outtextxy(int iX, int iY, 字符串);功能:在窗口内(iX,iY)处,显示字符串的内容。
例如:
#include "graphics.h" //已经包含了conio.h,windows.h
#include <stdio.h> //图形库中不包含此头文件
int main(void)
{
char s[50]; //定义了一个字符串s,能够容纳最多50个英文字符,或者25个中文字符
int iNum = 10;
initgraph(800,600); //建立窗口
sprintf(s, "菜菜每天要在qq里面至少发%d张兔子图片,看得我都恶心了!", iNum); //此函数仅用于文字的转换和给字符串赋值,不具备输出功能,此函数来自stdio.h
outtextxy(100,400, s); //在(100,400)位置,显示字符串s中的文字
getch(); //等待用户按下任意键
closegraph(); //关闭图形窗口
return 0;
}
---------------------------------------------------------------
/***如何实现延时与清屏
1、延时使用windows.h中的Sleep函数来实现
2、清屏用语句cleardevice实现。
例如:
#include "graphics.h"
int main(void)
{
initgraph(800,600);
outtextxy(100,400, "动物园的笼子开了?");
Sleep(3000); //延时
cleardevice();//清屏
getch();
closegraph();
return 0;
}
-------------------------------------------------------------------
/***如何设置文字的颜色、字型;如何设置窗口背景色
1、设置窗口背景色:void setbkcolor(int iColor);
2、设置窗口前景色:void setcolor(int iColor); //在显示文字之前设置颜色
3、设置字体:void setfont(int iHeight, int iWidth, "字型");//在输出文字之前使用
#include "graphics.h"
int main(void)
{
initgraph(800,600);
setbkcolor(BLUE);
setcolor(YELLOW);
setfont(40,20,"楷体_GB2312");
outtextxy(100,400, "动物园的笼子开了?");
getch();
closegraph();
return 0;
}
---------------------------------------------------------------------
/***如何在图形窗口中显示图片
1、定义IMAGE类型的结构体。
如:IMAGE tPic;
2、调用getimage函数导入图片。
调用方式:getimage(&结构体,“图片路径”);
如:getimage(&tPic,“girl.jpg”);
如:getimage(&tPic,“image\\girl.jpg”);
注意:定义IMAGE类型的结构体后,
必须立即用getimage函数将图片导入该结构体;
3、调用putimage函数显示图片。
调用方式:putimage(x,y,&结构体);
如:putimage(200, 300, &tPic);列子:
#include "graphics.h"
int main(void)
{
initgraph(800,600);
IMAGE tPic;
getimage(&tPic,"ww.jpg");
putimage(0,0,&tPic);
getch();
closegraph();
return 0;
}
--------------------------------------------------------------
/***如何在图片上显示文字,使得文字背景透明
在显示文字之前使用语句:setbkmode(TRANSPARENT);
---------------------------------------------------------------
一、学习跨函数跳转(从子函数跳到主函数)
1、包含头文件setjmp.h
2、定义jmp_buf类型的全局变量,该变量名相当于标号。
如:jmp_buf g_end; //全局变量的命名规范:以g_开头,g是globle
3、用setjmp函数设置跳转目的地
如:setjmp(g_end);
4、用longjmp函数进行跨函数跳转
如:longjmp(g_end, 1);
注意: 整个程序中,必须先执行setjmp,后执行longjmp,否则程序会异常终止。
setjmp函数的返回值
1、若longjmp未执行,则setjmp返回0
2、若longjmp执行,则setjmp返回longjmp的第2个参数值
longjmp函数的第2个参数, 不要为0
#include <stdio.h>
#include <setjmp.h>
void fnOutPut(void);
jmp_buf g_xx;
int main(void)
{
int t;
t = setjmp(g_xx);
switch(t)
{
case 0: printf("111111111111\n");
fnOutPut();
printf("111111111111\n");
printf("111111111111\n");
case 5: printf("111111111111\n");
printf("111111111111\n");
}
return 0;
}
void fnOutPut(void)
{
printf("222222222222\n");
printf("222222222222\n");
printf("222222222222\n");
longjmp(g_xx, 5);
printf("222222222222\n");
printf("222222222222\n");
}
要依次显示:一行1、三行2、两行1。
-------------------------------------------------------------------
/***按键检测函数:int keystate(按键描述/ASCII码/字符变量);
功能:检查某按键是否按下,若按下,则返回1,否则返回0。
常用按键描述:
字母键A:‘A’ F1键:VK_F1 右方向键:VK_RIGHT
ESC键:VK_ESCAPE 空格:VK_SPACE 小键盘4:VK_NUMPAD4
比如:keystate('A'); //等同于keystate(65);
比如:keystate(VK_F7);
右方向键:VK_RIGHT
左方向键:VK_LEFT
上方向键:VK_UP
上方向键:VK_UP
例:iKey = keystate(‘A’);
检查字母键A是否按下,若按下,给iKey赋值1,否则赋值0
例:char c = 'A';
iKey = keystate(c);
检查是否有变量c表示的按键按下,并给iKey赋值。
//函数:bar(左上角x,左上角y,右下角x,右下角y);
功能:画一个没有边框,但有填充色的矩形
可用函数setfillstyle来设置矩形框的填充色,此函数必须在画矩形之前调用。
举例:
#include "graphics.h"
int main(void)
{
initgraph(800,600);
setfillstyle(GREEN);
bar(50,40,100,120);
getch();
closegraph();
return 0;
}
----------------------------------------------------------------------------
/***字母下落:
#include "graphics.h"
int main(void)
{
int x, y;
char c;
initgraph(800,600);
randomize(); //此函数只需要调用一次就足够
while(1)
{
x = random(780); //字母左上角的x坐标在0-779内随机产生
c = random(26)+65; //给c随机赋值为[65,90]范围内的数 random(n)是产生一个[0,n-1]的随机数
for(y = 0; y < 600; y+=5)
{
outtextxy(x,y,c);
Sleep(30);
cleardevice();
}
}
getch();
closegraph();
return 0;
}