C语言图形编程

上传人:m**** 文档编号:466084008 上传时间:2023-06-19 格式:DOC 页数:18 大小:74.01KB
返回 下载 相关 举报
C语言图形编程_第1页
第1页 / 共18页
C语言图形编程_第2页
第2页 / 共18页
C语言图形编程_第3页
第3页 / 共18页
C语言图形编程_第4页
第4页 / 共18页
C语言图形编程_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《C语言图形编程》由会员分享,可在线阅读,更多相关《C语言图形编程(18页珍藏版)》请在金锄头文库上搜索。

1、C的图形编程一、屏幕显示模式1、文本模式在文本模式又称字符模式。在此模式下整个屏幕被划分成(25行,80列),共25*80个文本单元,每个单元包括一个字符和一个属性, 字符即ASCII 码字符, 属性规定该字符的颜色和强度。(1,1) 25 80屏幕区坐标原点在屏幕的左上角。如下图所示:在头文件中定义了文本模式下一些函数常用的有;(1) 定义一个文本窗口void window(int left, int top, int right, int bottom); 如要定义一个窗口左上角在屏幕(20, 5)处, 大小为30列15行的窗口可写成: window(20, 5, 50, 25);(2)文

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

3、()函数的输出受窗口限制, 而printf() 函数的输出为整个屏幕。 cputs()函数输出一个字符串到屏幕上, 它与puts()函数用法完全一样, 只是受窗口大小的限制。 putch()函数输出一个字符到窗口内。二、窗口内文本的输入函数 int getche(void); getche()函数从键盘上获得一个字符, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一行的开始位置。例1:下面这个程序使用了关于窗口大小的定义、颜色的设置等函数, 在一个屏幕 上不同位置定义了7个窗口, 其背景色分别使用了7种不同的颜色。#include #include /文本模式下的函数v

4、oid main(void) int i; char *c=BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY; textbackground(0); /* 设置屏幕背景色 */ clrscr(); /* 清除文本屏幕 */ cputs(c0); for(i=1; i8; i+) window(10+i*5, 5+i, 30+i*5, 15+i); /* 定义文本窗口 */ textbackground(i); /* 定义窗口背景色 */ clrscr(); cputs(ci); /* 清除窗口 */ getch(); 表1. 有关

5、颜色的定义 符号常数 数值 含义 字符或背景 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 淡红 只用于字符 LIGHTMAGENTA13 淡洋红 只用于字符 YELLOW 14 黄 只用于字符 WHI

6、TE 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; 不清除缓冲区

7、。mode为0时,从键盘缓冲区取出按键,并清除缓冲区。若没有的话,则等待。271High如:ESC High720UPHigh800DOWN750HighLEFT770HighRIGHT590High F1600HighF23065HighAHigh4490Z3097Higha30122Highz#include #inlcude union keyTest int c; char ch2;void main(void) union keyTest k;while(1)while(bioskey(1)= =0); /* function 1 returns 0 until a key is p

8、ressed */k.c = bioskey(0); /* function 0 returns the key that is waiting */ printf(“High=%d,Low=%dn”,k.c,k .ch1,k .ch0);例3:C提供的随机函数:void randomize(); /初始化随机数发生器int random(int ubound); /返回范围在0到ubound - 1之间的一个随机整数。2、图形模式不同的显示器适配器(显卡)有不同的图形分辨率。即是同一显卡, 在不同模式下也有不同分辨率。因此, 在屏幕作图之前, 必须根据显卡种类将显示器设置成为某种图形模式。V

9、GALO 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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号