C语言的图形函数笔记

#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值