好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

最新C语言图形编程.doc

21页
  • 卖家[上传人]:hs****ma
  • 文档编号:421298099
  • 上传时间:2023-06-29
  • 文档格式:DOC
  • 文档大小:203KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 精品资料C语言图形编程........................................C的图形编程一、屏幕显示模式1、文本模式在文本模式又称字符模式在此模式下整个屏幕被划分成(25行,80列),共25*80个文本单元,每个单元包括一个字符和一个属性, 字符即ASCII 码字符, 属性规定该字符的颜色和强度1,1)2580屏幕区坐标原点在屏幕的左上角如下图所示:在头文件中定义了文本模式下一些函数常用的有;(1) 定义一个文本窗口void window(int left, int top, int right, int bottom); 如要定义一个窗口左上角在屏幕(20, 5)处, 大小为30列15行的窗口可写成:      window(20, 5, 50, 25);(2)   文本窗口颜色的设置        void textbackground(int color); //设置背景颜色:      void textcolor(int color); //设置字符颜色:    有关颜色的定义见表1 (3) 光标定位   void gotoxy(int x, int y);(4) 清屏void clrscr(void);(5) 其它函数一、窗口内文本的输出函数int cprintf("<格式化字符串>", <变量表>); int cputs(char *string); int putch(int ch);cprintf()函数输出一个格式化的字符串或数值到窗口中。

      它与printf() 函数的用法完全一样, 区别在于cprintf()函数的输出受窗口限制, 而printf() 函数的输出为整个屏幕     cputs()函数输出一个字符串到屏幕上, 它与puts()函数用法完全一样,  只是受窗口大小的限制     putch()函数输出一个字符到窗口内二、窗口内文本的输入函数         int getche(void);    getche()函数从键盘上获得一个字符, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一行的开始位置例1:下面这个程序使用了关于窗口大小的定义、颜色的设置等函数, 在一个屏幕 上不同位置定义了7个窗口, 其背景色分别使用了7种不同的颜色include #include //文本模式下的函数void main(void){ int i; char *c[]={"BLACK", "BLUE", "GREEN", "CYAN", "RED", "MAGENTA", "BROWN", "LIGHTGRAY"}; textbackground(0); /* 设置屏幕背景色 */ clrscr(); /* 清除文本屏幕 */ cputs(c[0]); for(i=1; i<8; i++) { window(10+i*5, 5+i, 30+i*5, 15+i); /* 定义文本窗口 */ textbackground(i); /* 定义窗口背景色 */ clrscr(); cputs(c[i]); /* 清除窗口 */ } getch(); } 表1. 有关颜色的定义 ━━━━━━━━━━━━━━━━━━━━━━━━━━━   符号常数         数值      含义         字符或背景 ───────────────────────────   BLACK              0         黑          两者均可   BLUE              1         兰          两者均可   GREEN              2         绿          两者均可   CYAN               3         青          两者均可   RED               4         红          两者均可   MAGENTA           5        洋红         两者均可   BROWN             6         棕          两者均可   LIGHTGRAY        7        淡灰         两者均可   DARKGRAY         8        深灰         只用于字符   LIGHTBLUE         9        淡兰         只用于字符   LIGHTGREEN      10       淡绿         只用于字符   LIGHTCYAN         11       淡青         只用于字符   LIGHTRED          12       淡红         只用于字符   LIGHTMAGENTA  13       淡洋红       只用于字符   YELLOW             14       黄           只用于字符   WHITE              15       白           只用于字符   BLINK             128      闪烁         只用于字符 ━━━━━━━━━━━━━━━━━━━━━━━━━━━例2:捕获键盘按键。

      键盘扫描码:每个键都有一个两字节的扫描码,其格式:HighLowHigh #define ESC 0x011B#define UP 0x4800#define DOWN 0x5000#define LEFT 0x4B00#define RIGHT 0x4D00#define ENTER 0x1C0D在头文件中定义如下函数,用以捕获键盘按键int bioskey(int mode); //此函数声明于 bios.hmode为1时,如有按键盘,则记录其扫描码至缓冲区,并返回其扫描码;无按键则返回0; 不清除缓冲区mode为0时,从键盘缓冲区取出按键,并清除缓冲区若没有的话,则等待271High如:ESC High720UPHigh800DOWN750HighLEFT770HighRIGHT590High F1600HighF23065HighAHigh4490Z3097Higha30122Highz#include #inlcude union keyTest{ int c; char ch[2];};void main(void){ union keyTest k;while(1){while(bioskey(1)= =0); /* function 1 returns 0 until a key is pressed */k.c = bioskey(0); /* function 0 returns the key that is waiting */ printf(“High=[%d],Low=[%d]\n”,k.c,k .ch[1],k .ch[0]);}}例3:C提供的随机函数:void randomize();  //初始化随机数发生器int random(int ubound); //返回范围在0到ubound - 1之间的一个随机整数。

      2、图形模式不同的显示器适配器(显卡)有不同的图形分辨率即是同一显卡, 在不同模式下也有不同分辨率因此, 在屏幕作图之前, 必须根据显卡种类将显示器设置成为某种图形模式VGALO           0         16色  640*200            VGA          VGAMED        1         16色  640*350                                VGAHI           2         16色  640*480(1)图形模式的初始化在屏幕作图之前, 必须根据显示器适配器种类将显示器设置成为某种图形模式, 在未设置图形模式之前, 微机系统默认屏幕为文本模式(80列, 25行字符模式), 此时所有图形函数均不能工作设置屏幕为图形模式, 可用下列图形初始化函数: void initgraph(int *gdriver, int *gmode, char *path);表2. 图形驱动器、模式的符号常数及数值 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━      图形驱动器(gdriver)          图形模式(gmode)    ───────────     ───────────    色调  分辨率     符号常数    数值            符号常数     数值 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━     CGA           1              CGAC0           0          C0   320*200                                CGAC1           1          C1   320*200                               CGAC2           2          C2   320*200                               CGAC3           3          C3   320*200                               CGAHI           4          2色  640*200 ─────────────────────────────────── MCGA          2            MCGAC0          0          C0   320*200                                MCGAC1          1          C1   320*200                                 MCGAC2          2          C2   320*20。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.