C语言图形编程
- 格式:doc
- 大小:86.00 KB
- 文档页数:31
c语言图形编程教程C语言图形编程是指利用C语言进行图形界面的开发和绘图操作。
它可以帮助开发者实现各种图形界面应用程序,如游戏、绘图工具、数据可视化等。
要进行C语言图形编程,首先需要选择一个合适的图形库来进行开发。
目前,常见的图形库有Windows GDI、OpenGL、SDL等。
其中,Windows GDI适用于Windows平台的开发,OpenGL适用于跨平台开发,而SDL则是一个跨平台的图形库,可以在多个操作系统上进行开发。
在开始图形编程之前,需要了解如何初始化图形环境、创建窗口和处理用户输入等基本操作。
具体的步骤包括引入相应的头文件、初始化图形环境、创建窗口和消息循环等。
这些操作可以使用相应的图形库提供的函数来实现。
一旦图形环境初始化完成,就可以使用相应的图形库提供的函数来绘制各种图形。
例如,可以使用线段函数来绘制直线,使用矩形函数来绘制矩形等。
此外,图形库还提供了颜色设置、文字绘制等功能,可以帮助开发者实现更加丰富和多样化的图形效果。
在进行图形编程时,还需要了解坐标系统的概念。
在大多数图形库中,坐标系统的原点一般位于左上角,X轴正方向向右,Y轴正方向向下。
通过了解坐标系统的概念,可以更加准确地控制图形的位置和大小。
除了基本的图形绘制外,C语言图形编程还可以进行动画效果的实现。
例如,可以通过循环不断地改变图形的位置和大小,从而实现图形的移动效果。
此外,还可以对图形进行旋转、缩放等操作,实现更加复杂和生动的动画效果。
总结起来,C语言图形编程是一种实现各种图形界面应用程序的方法。
它通过选择合适的图形库,初始化图形环境,使用相应的函数进行图形绘制,实现丰富和多样化的图形效果。
同时,还可以进行动画效果的实现,提升程序的交互性和视觉效果。
通过学习和掌握C语言图形编程,开发者可以更加便捷地实现自己的创意和想法。
C语言心形编程代码的原理及应用1. 简介C语言是一种高级程序设计语言,拥有广泛的应用领域。
其中,心形编程代码是一种常见的图形编程示例,它通过C语言编写代码在控制台上生成一个心形图案。
本文将介绍心形编程代码的原理及应用。
2. 心形编程代码的原理心形编程代码的原理是通过在控制台上绘制符号字符来生成心形图案。
具体步骤如下:2.1 设置控制台画布首先,需要将控制台的大小设置为适合显示心形图案的尺寸。
可以使用C语言提供的相关函数来获取控制台的大小并设置画布的尺寸。
2.2 绘制心形图案绘制心形图案的过程可以分为两个步骤,分别绘制上半部分和下半部分。
2.2.1 绘制上半部分上半部分的绘制可以通过使用一系列符号字符来实现。
可以根据心形的形状定义一个字符数组,数组中的每个元素表示一行字符。
每行字符的数量和上下两个点之间的距离有关,可以通过调整字符数组的元素来改变上半部分的形状。
2.2.2 绘制下半部分下半部分的绘制与上半部分类似,只需要将上半部分的符号字符按照相反的顺序进行绘制即可。
2.3 显示心形图案绘制完成后,需要将生成的心形图案显示在控制台上。
可以使用C语言提供的输出函数将绘制好的图案输出到控制台。
3. 心形编程代码的应用心形编程代码具有一定的应用价值,可以用于表达情感、制作贺卡等场景。
3.1 表达情感通过生成心形图案,可以用简单的代码表达深深的情感。
将心形编程代码应用于情人节礼物、生日祝福等场景,可以给人一种特殊的感受。
3.2 制作贺卡心形图案可以作为一种简单而特别的贺卡设计元素。
通过在控制台上生成心形图案,可以制作个性化的贺卡,为亲朋好友送上温馨祝福。
3.3 学习图形编程心形编程代码可以作为学习图形编程的一个案例,对初学者来说非常友好。
通过理解和修改心形编程代码,可以熟悉C语言的基本语法和控制台绘图的原理。
4. 总结本文介绍了C语言心形编程代码的原理及应用。
通过在控制台上绘制符号字符,可以生成美观的心形图案。
C的图形编程一、屏幕显示模式1、文本模式在文本模式又称字符模式。
在此模式下整个屏幕被划分成(25行,80列),共25*80个文本单元,每个单元包括一个字符和一个属性, 字符即ASCII 码字符, 属性规定该字符的颜色和强度。
坐标原点在屏幕的左上角。
如下图所示:在<conio.h>头文件中定义了文本模式下一些函数常用的有;(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()函数从键盘上获得一个字符, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一行的开始位置。
一、屏幕和视口设置与清除函数36. setviewport() 设置图形视口函数37. clearviewport()清除图形视口函数38. cleardevice() 清除屏幕函数39. getviewsettings() 获取图形视口设置函数二、调色板和颜色函数40. setpalette()设置调色板函数41. setallpalette()设置整个调色板函42. setbackcolor() 设置背景颜色函数43. setcolor() 设置颜色函数44. getbkcolor() 返回背景色函数45. getcolor() 返回当前绘图颜色46. getmaxcolor()返回最大颜色值函数47. getpalette() 获取调色板函数48. getpalettesize() 返回调色板大小函数49. getdefaultpalette() 获取缺省调色板函数三、屏幕位置函数50. getmaxx()返回最大x坐标函数51. getmaxy() 返回最大y坐标函数52. getx() 返回x坐标函数53. gety() 返回y坐标函数54. moveto()函数55. moverel() 相对移动函数----------------------------------------------------Borland C++提供了一整套综合性的图形函数,上节介绍了其中有关图形显示的函数,本节介绍其中的绘图函数,下节将介绍它的图形文本函数。
一般绘图时,首先要清除屏幕,设置图形视口,设置绘图颜色,然后在屏幕上某个位置画点或直线或曲线等。
下面给出具有这些功能的函数。
一、屏幕和视口设置与清除函数36. setviewport() 设置图形视口函数功能:函数setviewport() 设置当前图形视口。
用法:函数调用方式为void setviewport(int left,int top,int right,int bottom,int clip);说明:参数left,top是左上角坐标,right,bottom是右下角坐标,它们都是绝对屏幕坐标。
C语⾔图形界⾯的编程1.编写图形程序时⽤致电的⼀些图形库函数抣在graphics.lib中,扏⾏这些函数时,所需的有关信息(如宏定义等)则包含在graphics.h头⽂件中。
2.我们⽇常在电视屏幕上显⽰的画⾯,其实均由⼀些圆点组成(其亮度,顔⾊不同),这些点称为像素(或像点),它们是组成图形的最⼩单位。
3。
插在PC机插槽中的图形卡(即适配器),其作⽤就是将要显⽰的字符和图形以数字形式存储在上的显⽰存储器(VRAM)中,再将其变成视频模拟信号送往相应适配的显⽰器机配有的显⽰器种类不同,因⽽适配器种类不同4,VGA:视频图形阵列适器:VGA是⽬前流⾏的PC机显⽰标准,它⽀持CGA,EGA的所有显⽰⽅式,但⾃已还有640*480像素的16⾊显⽰⽅式, 640*350像素的中分辨率显⽰⽅式和640*200像素的低分辨显⽰⽅式,它们均有16种显⽰顏⾊可供选择。
5.CVGA:是国内研制的带有显⽰汉字功能的VGA图形适配器,带有汉字字库,该适配器提供了和CGA,EGA,VGA全兼容的⼯作⽅式,还担供了在⽂本⼯作⽅式下的⾼分辨率图形显⽰功能。
6.显⽰器有两种⼯作⽅式,即⽂本显⽰和图形显⽰。
它们的区别是显⽰存储器中的存储的信息不同。
字符⽅式时, VRAM存放要显⽰字符的ASCII 码,⽤它作为,取出字符发⽣器ROM中存放的相应字符的图像(⼜称字模),变成视频信号在显⽰器上进⾏显⽰;⽽当选择图形⽅式时,则要显⽰的图形的图像直接存在VRAM中中,VRAM中某单元存放的数就表⽰了相应屏莫上某⾏和某列上的像素及顔⾊7.对EGA显⽰器,调⾊板即16个调⾊板寄存器是⼀个顔⾊索引表,它存有16种顔⾊,VRAM中的每个像素值(是4位)实际代表⼀个顔⾊索引号该值即上述函有选举权的参数index可知道选中哪个调⾊板寄存器,⽽每个调⾊板寄存器为6位,故可⽤6位⼆进制数表⽰⼀个顔⾊,因⽽可有64种顔⾊供选择。
该顔⾊值即是上述参数octual_color,8.对于VGA显⽰器,也只有⼀个调⾊板,对应16个调⾊板寄存器。
C语言形界面编程入门指南C语言图形界面编程入门指南C语言是一种广泛应用的编程语言,其灵活性和高效性使其成为许多开发人员的首选。
图形界面编程是C语言中一项重要的技术,通过图形界面,开发人员可以为程序提供更加友好和直观的用户交互方式。
本指南将介绍C语言图形界面编程的基础知识和实践技巧,帮助读者快速入门。
一、图形界面编程的基础知识1.1 图形界面简介图形界面是指通过图形方式呈现的计算机程序的用户界面,它利用图形元素(如按钮、文本框、菜单等)来进行用户交互。
与传统的命令行界面相比,图形界面更加直观和易于使用。
1.2 C语言中的图形界面编程库在C语言中,有多种图形界面编程库可供选择。
其中比较著名的有:- WinAPI:适用于Windows系统的库,提供了丰富的图形界面控件和API函数。
- GTK+:跨平台的图形界面库,支持Windows、Linux等多个操作系统。
- Qt:一款功能强大的跨平台图形界面开发框架,使用C++编写,但也支持C语言。
二、使用GTK+进行图形界面编程2.1 GTK+简介GTK+(GIMP Toolkit)是一款开源的图形界面编程库,最初是为图像处理软件GIMP开发的,后来逐渐发展为一套成熟的跨平台工具包。
GTK+提供了丰富的控件和事件处理机制,使用C语言编写。
2.2 GTK+的安装和配置要在C语言中使用GTK+进行图形界面编程,首先需要安装和配置GTK+开发环境。
具体步骤如下:(此处省略具体安装和配置步骤,读者可根据实际情况自行查找相关资料)2.3 编写一个简单的GTK+图形界面程序下面是一个使用GTK+编写的简单图形界面程序示例:```c#include <gtk/gtk.h>// 窗口关闭回调函数void on_window_close(GtkWidget *widget, gpointer data) {gtk_main_quit();}// 主函数int main(int argc, char *argv[]) {gtk_init(&argc, &argv);// 创建窗口GtkWidget *window =gtk_window_new(GTK_WINDOW_TOPLEVEL);g_signal_connect(window, "destroy",G_CALLBACK(on_window_close), NULL);// 创建一个按钮GtkWidget *button = gtk_button_new_with_label("Hello World");gtk_container_add(GTK_CONTAINER(window), button);// 显示窗口和按钮gtk_widget_show_all(window);// 进入主循环gtk_main();return 0;}```以上示例代码使用GTK+库创建了一个简单的窗口,并在窗口中添加了一个按钮,点击按钮时程序会退出。
C语言图形编程(一、字符屏幕)在Borland C++里面提供了字符屏幕和图形函数。
字符屏幕的核心是窗口(Window),它是屏幕的活动部分,字符输出或显示在活动窗口中进行。
窗口在缺省时,就是整个屏幕。
窗口可以根据需要指定其大小。
同样,对图形函数的操作,也提供了(Viewport)。
也就是说图形函数的操作都是在视口上进行。
图形视口与字符窗口具有相同的特性,用户可以在屏幕上定义大小不同的视口,若不定义视口大小,它就是整个屏幕。
窗口是在字符屏幕下的概念,只有字符才能在窗口中显示出来,这时用户可以访问的最小单位为一个字符。
视口是在图形屏幕状态下的概念,文本与图形都可以在视口上显示,用户可访问的最小单位是一个像素(像素这一术语最初用来指显示器上最小的、单独的发光点单元。
然而现在,其含义拓宽为指图形显示器上的最小可访问点)。
字符和图形状态下,屏幕上的位置都是由它们的行与列所决定的。
有一点须指出:字符状态左上角坐标为(1,1),但图形左上角坐标为(0,0)。
了解字符屏幕和图形函数与窗口和视口的关系是很重要的。
例如,字符屏幕光标位置函数gotoxy()将光标移到窗口的x,y位置上,这未必是相对于整个屏幕。
下面介绍常用的几类字符屏幕函数的功能用途、操作方法及其例行程序。
一、屏幕操作函数编写程序绘图经常要用到对字符屏幕进行操作。
例如,在往屏幕上写字符之前,首先要将屏幕清除干净。
又如,有时需要在屏幕上多处写上肉中刺样的字符内容,这时最好用屏幕拷贝来高效率地完成这一任务。
对这些操作,Borland C++提供了一系列字符屏幕操作函数来实现。
1. clrscr()清除字符窗口函数功能:函数clrscr()清除整个当前字符窗口,并且把光标定位于左上角(1,1)处。
用法:此函数调用方式为void clrscr(void);说明:括号中void 表示无参数。
该函数相应的头文件为conio.h返回值:无例:使用这个函数的例子见4.clreol()函数的实例中。
C语言图形编程入门指南C语言作为一种广泛应用于软件开发领域的编程语言,具有高效、灵活和可移植的特点。
而图形编程则是C语言中一个重要的应用领域,它可以帮助开发者创建各种各样的图形界面和交互式应用程序。
本文将为读者提供一份C语言图形编程入门指南,帮助初学者快速入门并掌握基本的图形编程技巧。
一、图形编程的基本原理图形编程主要涉及两个方面:图形绘制和用户交互。
图形绘制是指在屏幕上绘制各种图形元素,如点、线、矩形和圆等。
用户交互则是指通过鼠标、键盘等输入设备与程序进行交互,实现用户的操作和反馈。
在C语言中,图形编程主要依赖于图形库的支持。
常见的图形库有BGI (Borland Graphics Interface)和OpenGL等。
BGI是一种基于DOS操作系统的图形库,而OpenGL则是一种跨平台的图形库,支持多种操作系统和硬件平台。
二、BGI图形编程入门BGI图形编程是C语言中最常用的图形编程方法之一。
它提供了一系列的函数和命令,可以实现图形绘制和用户交互。
下面是一个简单的BGI图形编程示例:```c#include <graphics.h>int main(){int gd = DETECT, gm;initgraph(&gd, &gm, "");circle(200, 200, 100);closegraph();return 0;}```上述代码使用了BGI图形库中的`initgraph`函数来初始化图形环境,`circle`函数用于绘制一个圆,`getch`函数用于等待用户按下任意键,`closegraph`函数用于关闭图形环境。
通过这段代码,我们可以在屏幕上绘制一个半径为100的圆,并等待用户的操作。
三、OpenGL图形编程入门OpenGL是一种跨平台的图形库,它提供了丰富的函数和命令,可以实现高效的图形渲染和复杂的图形效果。
下面是一个简单的OpenGL图形编程示例:```c#include <GL/glut.h>void display(){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POLYGON);glVertex2f(-0.5, -0.5);glVertex2f(0.5, -0.5);glVertex2f(0.5, 0.5);glVertex2f(-0.5, 0.5);glFlush();}int main(int argc, char** argv){glutInit(&argc, argv);glutCreateWindow("OpenGL Example");glutDisplayFunc(display);glutMainLoop();return 0;}```上述代码使用了OpenGL图形库中的`glutInit`函数来初始化图形环境,`glutCreateWindow`函数用于创建一个窗口,`glutDisplayFunc`函数用于指定绘制函数,`glutMainLoop`函数用于进入消息循环。
C语言形编程使用形库创建形界面C语言编程使用图形库创建图形界面在计算机编程中,图形界面是人与计算机之间进行交互的重要方式。
在C语言中,我们可以使用图形库来创建图形界面,使程序更加直观、易于使用。
本文将介绍如何使用C语言和图形库来创建图形界面。
一、图形库及其用途图形库是一种软件库,通过提供一系列函数和工具,使开发人员能够在程序中添加图形元素,如窗口、按钮、菜单等,以及相应的交互和动画效果。
C语言中常用的图形库有OpenGL、SDL、SFML等。
二、图形界面的基本概念1. 窗口:图形界面中的主要组件,通常用来承载其他图形元素。
在C语言中,可以使用图形库提供的函数创建窗口,并设置其大小、位置、标题等属性。
2. 控件:用于与用户进行交互的元素,如按钮、文本框、复选框等。
可以通过图形库提供的函数在窗口中添加和设置各种控件。
3. 事件处理:用户与图形界面进行交互时,会触发各种事件,如单击按钮、输入文本等。
程序需要通过事件处理函数来响应这些事件,并执行相应的操作。
三、图形库的安装和配置要在C语言中使用图形库创建图形界面,需要先进行安装和配置。
具体步骤如下:1. 下载图形库的安装包,并解压到指定目录。
2. 配置编译器的环境变量,将图形库所在目录添加到编译器的搜索路径中。
3. 在编译时,链接图形库的库文件,以使程序能够正确地调用图形库的函数。
四、使用图形库创建图形界面的基本步骤使用图形库创建图形界面的基本步骤如下:1. 初始化图形库:在程序开始时,调用图形库提供的初始化函数,初始化图形环境。
2. 创建窗口:使用图形库提供的函数创建主窗口,并设置窗口的大小、位置、标题等属性。
3. 添加控件:在窗口中添加各种控件,如按钮、文本框等。
可以设置它们的位置、大小、文本内容等。
4. 注册事件处理函数:将自定义的事件处理函数与控件的事件关联起来,以响应用户的操作。
5. 运行消息循环:进入主消息循环,等待用户的操作。
当有事件发生时,调用相应的事件处理函数执行对应的操作。
如何利用C语言进行图形化编程在计算机编程领域,图形化编程一直是一个备受关注的话题。
图形化编程可以使程序更加直观、易于理解,同时也能提升用户体验。
虽然C语言是一种被广泛应用的编程语言,但是它本身并不擅长处理图形化界面。
然而,我们可以通过一些技巧和工具来利用C语言进行图形化编程。
一、使用图形库在C语言中,我们可以使用图形库来实现图形化编程。
图形库是一种提供了绘制图形和处理图形界面的工具集。
其中,最常用的图形库是OpenGL和SDL。
OpenGL是一个跨平台的图形库,它可以在多个操作系统上运行,并且支持3D图形的绘制。
而SDL是一个简单易用的图形库,它专注于2D图形的绘制和处理。
通过使用这些图形库,我们可以在C语言中轻松实现图形化界面的编程。
二、学习GUI框架除了使用图形库,我们还可以学习和使用GUI(图形用户界面)框架来进行图形化编程。
GUI框架是一种提供了一系列图形化界面组件和工具的软件库。
在C 语言中,常用的GUI框架有GTK+和Qt。
GTK+是一个开源的GUI框架,它提供了一套丰富的界面组件和事件处理机制,可以用于创建跨平台的图形化应用程序。
而Qt是一个跨平台的GUI框架,它提供了一套完整的界面组件和工具,可以用于创建高度可定制的图形化应用程序。
通过学习和使用这些GUI框架,我们可以在C语言中实现复杂的图形化界面。
三、结合其他编程语言除了使用C语言本身的特性和工具,我们还可以结合其他编程语言来进行图形化编程。
例如,我们可以使用C语言与Python进行集成,利用Python的图形化编程库来实现图形化界面。
Python拥有丰富的图形化编程库,如Tkinter和PyQt,它们提供了一系列易用的界面组件和工具。
通过使用C语言与Python的结合,我们可以充分发挥C语言的计算性能,同时又能利用Python的图形化编程库来实现图形化界面。
四、自定义图形化库如果我们对现有的图形库和GUI框架不满意,我们还可以自己开发一个图形化库。
二、C 的图形模式编程2.1图形编程基础VC+EasyX 库里提供了图形函数就可以在VC 环境下进行图形编程。
对图形函数的操作都是在视口(Viewport )上进行。
用户可以在屏幕上定义大小不同的视口,若不定义视口大小,它就是整个屏幕。
视口是在图形屏幕状态下的概念,用户可访问的最小单位是一个像素(像素这一术语最初用来指显示器上最小的、单独的发光点单元。
然而现在,其含义拓宽为指图形显示器上的最小可访问点)。
文本与图形都可以在视口上显示。
图形视口的左上角坐标为(0,0)。
例如:分辨率为640*480的视口像素点的定位显示器在图形模式下工作时,显示的单位是像素点,通过控制各像素点的颜色和灰度等级来形成图形。
因此绘图的第一步是进行图形模式的初始化,系统进入绘图模式。
(1) initgraph() 图形初始化函数用法: HWND initgraph(int width,int height,int flag = NULL);示例:以下局部代码创建一个尺寸为 640x480 的绘图环境:initgraph(640, 480);例2-1:调用initgraph()设置640*480的图形模式,在屏幕中央显示如下的图形。
参考代码:#include<graphics.h>#include <conio.h>int main(){initgraph(640, 480);line(200, 240, 440, 240);line(320, 120, 320, 360);getch();(closegraph();return 0;}[学习单步执行]试着单步执行刚才的程序,由于绘图和多线程等因素的限制,请务必按照以下步骤尝试(熟练了以后就不用了):1. 将VC取消最大化,并缩小窗口,能看到代码就行。
2. 按一下F10(单步执行),会看到屏幕上出现一个黄色的小箭头,指示将要执行的代码。
3. 当箭头指向initgraph()语句时,按F10,能看到窗口发生了变化。
C语言的图形界面编程与图形库应用介绍C语言作为一种通用的编程语言,被广泛应用于系统开发和嵌入式设备。
然而,由于其基于命令行的特性,C语言并不支持直接的图形界面编程。
为了满足用户对于友好界面的需求,许多图形库应运而生。
本文将介绍C语言图形界面编程的基本概念,并重点讨论几个常用的图形库的应用。
为什么选择C语言进行图形界面编程?C语言作为一门强大的编程语言,具有广泛的应用领域。
尽管C语言不是为图形界面编程而设计的,但由于其高效的性能和灵活的特性,仍然被许多开发人员选择用于图形界面编程。
此外,许多操作系统和嵌入式设备仍然使用C语言开发,因此了解C语言图形界面编程对于开发和维护软件系统至关重要。
图形库的作用图形库是一组用于支持图形界面编程的函数和工具集合。
它们提供了一种方便的方式来创建窗口、按钮、文本框等图形界面组件,并处理鼠标、键盘等用户输入。
常用的图形库包括GTK、Qt和SDL等。
GTKGTK是一种用于创建图形界面的开源工具包,最初是为GNU计划开发的。
它采用C语言编写,并提供了一些用于创建窗口、按钮等组件的函数。
GTK被广泛用于Linux系统上的应用程序开发,如GNOME桌面环境。
QtQt是一种跨平台的图形界面开发工具包,提供了丰富的功能和易于使用的API。
Qt可以使用C++语言进行编程,但也提供了对C语言的支持。
Qt被广泛应用于多个操作系统平台,如Windows、Mac和Linux。
SDLSDL(Simple DirectMedia Layer)是一个跨平台的多媒体库,用于开发游戏和多媒体应用程序。
虽然SDL主要用于处理图像、音频和输入设备,但它也提供了一些基本的图形界面功能。
由于其简单易用和高效性能,SDL被广泛应用于嵌入式设备和游戏开发领域。
基本的图形界面编程概念在进行图形界面编程时,开发人员需要了解一些基本的概念和技术。
下面是一些常见的概念:窗口和控件窗口是图形界面中的一个基本组件,用于显示用户界面和接收用户输入。
C的图形编程一、屏幕显示模式1、文本模式在文本模式又称字符模式。
在此模式下整个屏幕被划分成(25行,80列),共25*80个文本单元,每个单元包括一个字符和一个属性, 字符即ASCII 码字符, 属性规定该字符的颜色和强度。
坐标原点在屏幕的左上角。
如下图所示:在<conio.h>头文件中定义了文本模式下一些函数常用的有;(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 <stdio.h>#include <conio.h> //文本模式下的函数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 淡青只用于字符LIGHTRED12 淡红 只用于字符LIGHTMAGENTA 13 淡洋红 只用于字符 YELLOW 14 黄 只用于字符WHITE 15 白 只用于字符BLINK 128 闪烁 只用于字符━━━━━━━━━━━━━━━━━━━━━━━━━━━例2:捕获键盘按键。
键盘扫描码:每个键都有一个两字节的扫描码,其格式:#define ESC 0x011B#define UP 0x4800#define DOWN 0x5000 #define LEFT 0x4B00#define RIGHT 0x4D00#define ENTER 0x1C0D在头文件<bios.h>中定义如下函数,用以捕获键盘按键。
int bioskey(int mode); //此函数声明于 bios.hmode 为1时,如有按键盘,则记录其扫描码至缓冲区,并返回其扫描码;无按键则返回0; 不清除缓冲区。
mode为0时,从键盘缓冲区取出按键,并清除缓冲区。
若没有的话,则等待。
如:ESCUPDOWNLEFTRIGHTF1F2AZaz#include <stdio.h>#inlcude <bios.h>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*200VGA VGAMED 1 16色 640*350VGAHI 216色 640*480(1)图形模式的初始化在屏幕作图之前, 必须根据显示器适配器种类将显示器设置成为某种图形模式, 在未设置图形模式之前, 微机系统默认屏幕为文本模式(80列, 25行字符模式), 此时所有图形函数均不能工作。
设置屏幕为图形模式, 可用下列图形初始化函数:void initgraph(int *gdriver, int *gmode, char *path);表2. 图形驱动器、模式的符号常数及数值━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━图形驱动器(gdriver) 图形模式(gmode) ──────────────────────色调分辨率符号常数数值符号常数数值━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━CGA 1 CGAC00 C0 320*200CGAC1 1 C1 320*200 CGAC2 2 C2 320*200 CGAC3 3 C3 320*200 CGAHI 4 2色 640*200───────────────────────────────────MCGA 2 MCGAC00 C0 320*200MCGAC1 1 C1 320*200MCGAC2 2 C2 320*200M CGAC3 3 C3 320*200MCGAMED 4 2色 640*200MCGAHI 5 2色 640*480 ───────────────────────────────────EGA 3 EGALO0 16色 640*200EGAHI 1 16色 640*350 ───────────────────────────────────EGA64 4 EGA64LO0 16色 640*200E GA64HI 1 4色 640*350───────────────────────────────────EGAMON 5 EGAMONHI0 2色 640*350───────────────────────────────────IBM8514 6 IBM8514LO0 256色 640*480IBM8514HI 1 256色 1024*768───────────────────────────────────HERC 7 HERCMONOHI0 2色 720*348───────────────────────────────────ATT400 8 ATT400C00 C0 320*200A TT400C1 1 C1 320*200ATT400C2 2 C2 320*200ATT400C3 3 C3 320*200ATT400MED 4 2色 320*200ATT400HI 5 2色 320*200───────────────────────────────────VGA 9 VGALO0 16色 640*200VG AMED 1 16色 640*350VG AHI 2 16色 640*480 ───────────────────────────────────PC3270 10 PC3270HI0 2色 720*350───────────────────────────────────DETECT 0 用于硬件测试━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━例子1:使用图形初始化函数设置VGA高分辨率图形模式#include <graphics.h>int main(){int gdriver, gmode;gdriver=VGA;gmode=VGAHI;initgraph(&gdriver, &gmode, "c:\\tc"); //图形模式初始化bar3d(100, 100, 300, 250, 50, 1); /*画一长方体*/getch();closegraph(); //关闭图形模式,返回默认文本模式return 0;}例子2:自动进行硬件测试后进行图形初始化有时编程者并不知道所用的图形显示器适配器种类, 或者需要将编写的程序用于不同图形驱动器, Turbo C提供了一个自动检测显示器硬件后进行图形初始化的方法。
即用gdriver= DETECT 语句后再跟 initgraph()函数就行了。