C语言图形编程
c语言图形编程教程
c语言图形编程教程C语言图形编程是指利用C语言进行图形界面的开发和绘图操作。
它可以帮助开发者实现各种图形界面应用程序,如游戏、绘图工具、数据可视化等。
要进行C语言图形编程,首先需要选择一个合适的图形库来进行开发。
目前,常见的图形库有Windows GDI、OpenGL、SDL等。
其中,Windows GDI适用于Windows平台的开发,OpenGL适用于跨平台开发,而SDL则是一个跨平台的图形库,可以在多个操作系统上进行开发。
在开始图形编程之前,需要了解如何初始化图形环境、创建窗口和处理用户输入等基本操作。
具体的步骤包括引入相应的头文件、初始化图形环境、创建窗口和消息循环等。
这些操作可以使用相应的图形库提供的函数来实现。
一旦图形环境初始化完成,就可以使用相应的图形库提供的函数来绘制各种图形。
例如,可以使用线段函数来绘制直线,使用矩形函数来绘制矩形等。
此外,图形库还提供了颜色设置、文字绘制等功能,可以帮助开发者实现更加丰富和多样化的图形效果。
在进行图形编程时,还需要了解坐标系统的概念。
在大多数图形库中,坐标系统的原点一般位于左上角,X轴正方向向右,Y轴正方向向下。
通过了解坐标系统的概念,可以更加准确地控制图形的位置和大小。
除了基本的图形绘制外,C语言图形编程还可以进行动画效果的实现。
例如,可以通过循环不断地改变图形的位置和大小,从而实现图形的移动效果。
此外,还可以对图形进行旋转、缩放等操作,实现更加复杂和生动的动画效果。
总结起来,C语言图形编程是一种实现各种图形界面应用程序的方法。
它通过选择合适的图形库,初始化图形环境,使用相应的函数进行图形绘制,实现丰富和多样化的图形效果。
同时,还可以进行动画效果的实现,提升程序的交互性和视觉效果。
通过学习和掌握C语言图形编程,开发者可以更加便捷地实现自己的创意和想法。
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()函数从键盘上获得一个字符, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一行的开始位置。
第2章C语言图形程序设计基础
TurboC已经成为当前进行图形、图象处理的重要 开发工具,它具有强大的图形功能,提供了十分丰 富的图形语句和图形函数,并能支持多种显示器和 驱动器。
本章主要介绍用TurboC进行图形程序设计的基本 方法和TurboC的图形功能,使大家对C语言的图形 应用有一个较深刻的理解。
12
2.1 屏幕设置
第2章 C语言图形程序设计基础
由于屏幕的分辨率不同,水平方向和垂直方向的点数也 不一样,从而点坐标系的Max x 、 Max y 数值也不同。
在TurboC中,坐标数据可以用两种形式给出:一种是绝 对坐标,另一种是相对坐标。
(1)绝对坐标的参考点是坐标的原点(0,0),x和y只 能取规定范围(0, Max x )和(0, Max y )内的正整 数;
2.图形模式 由于每种图形显示器都有几种不同的图形显示模式,所
以要显示图形,不但要先装入相应的驱动程序,而且还要 决定所用的显示模式。 TurboC 常采用的几种图形驱动程 序及相应的模式
表2.2 图形驱动程序及相应的模式
驱动程序 (driver)
CGA
图形模式(gmode) CGAC0 CGAC1 CGAC2 CGAC3 CGAHI
由于显示模式的不同,所显示的字符的列数和行数以及颜 色也不相同。TurboC支持以下6种不同的显示方式。
(1)BW40:黑白40列方式。显示25行文本,其中每行 40个字符,以黑白两色显示。
(2)C40:彩色40列方式。可显示40列25行彩色字符。
(3)BW80:黑白80列方式。可显示80列25行字符。
第2章
第2章 C语言图形程序设计基础
C语言控制台图形化编程
C语言控制台图形化编程在计算机编程领域,图形化界面一直是提高用户体验的重要手段之一。
在C语言中,虽然没有直接支持图形化编程的库函数,但我们可以利用一些技巧和库来实现控制台图形化编程。
本文将介绍如何在C语言中通过控制台绘制基本的图形和实现简单的交互效果。
一、基本概念在开始编写控制台图形化程序之前,我们需要了解一些基本概念。
首先是像素和字符的概念,控制台上的每个字符都可以看作一个像素,可以通过改变字符的颜色来实现绘图效果。
其次是控制台的坐标系,通常以左上角为原点,向右为X轴正方向,向下为Y轴正方向。
二、绘制基本图形1. 绘制点在控制台中绘制点可以通过改变字符的颜色实现,可以使用Windows API函数SetConsoleTextAttribute来设置字符的颜色。
例如,下面代码可以绘制一个红色的点:```c#include <windows.h>#include <stdio.h>void gotoxy(int x, int y) {COORD pos;pos.X = x;pos.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);}void setcolor(int color) {HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hConsole, color);}int main() {int x = 10, y = 5;gotoxy(x, y);setcolor(FOREGROUND_RED);printf("*");return 0;}```2. 绘制线段要在控制台中实现绘制线段的效果,我们可以利用字符的重复打印来模拟直线的效果。
例如,下面代码可以绘制一条水平线段:```c#include <stdio.h>void setcolor(int color) {printf("\033[1;%dm", color);}int main() {int x1 = 10, x2 = 20, y = 5;setcolor(31); // 设置为红色for (int i = x1; i <= x2; i++) {printf("*");}return 0;}```3. 绘制矩形要在控制台中绘制矩形,可以利用循环来控制每行的输出。
C语言图形编程入门指南
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语言图形界面编程。
一、了解C语言图形编程的基本概念在开始学习C语言图形界面编程之前,我们需要了解几个基本概念:1. 形库(Graphics Library):形库是提供了一些函数和工具,用于创建、显示和操作图形元素的集合。
通过使用形库,我们可以在计算机屏幕上绘制图形、添加文本和图像等。
2. 窗口(Window):窗口是图形界面编程中的基本单元,用于显示程序的内容。
一个窗口可以包含多个界面元素,如按钮、文本框、下拉框等。
3. 界面元素(Interface Element):界面元素是构成图形用户界面的基本组成部分,如按钮、文本框、下拉框等。
通过操作界面元素,用户可以与程序进行交互。
二、选择合适的形库在C语言图形界面编程中,有多种形库可供选择。
常见的形库有:1. Windows API:用于Windows操作系统的图形库,提供了丰富的功能和界面元素。
2. GTK:跨平台的图形库,支持Linux、Windows等操作系统。
3. Qt:功能强大的图形库,支持多个操作系统。
根据项目的需求和开发环境,选择合适的形库是非常重要的。
在本文中,我们将以Windows API为例,介绍C语言图形界面编程的基本步骤。
三、使用Windows API创建窗口和界面下面是使用Windows API创建窗口和界面的基本步骤:1. 引入头文件和链接形库:首先,在C语言程序中引入相应的头文件和链接形库。
对于Windows API,我们需要包含windows.h头文件,并链接user32.lib库。
2. 定义窗口类:使用Windows API,我们需要定义一个窗口类。
窗口类包含窗口的属性和行为,如窗口标题、大小和消息处理函数等。
c语言编程图形
printf(" +\n");
}
printf("\n");
}
int deng(){\\*打印等号
int i;
printf("\n");
for(i=0;i<3;i++)
printf(" | |\n");
printf("\n");
}
int wen(){\\*打印一个问号
printf(" **\n");
printf(" * *\n");
printf(" * *\n");
printf(" *\n");
printf(" *\n");
printf(" *\n");
printf("\n");
printf(" @\n");
}
6、总结:程序分工:矩形的模块由艾猛设计;菱形的模块由覃川,其他程序由张博学和许周礼设计。
}
for(j=0;j<2;j++)
{
for(i=0;i<=j;i++)
printf(" ");
for(i=0;i<3-2*j;i++)
printf("*");
printf("\n");
}
}
int jia(){\\*打印加号
int i;
printf("\n");
C中的形编程和像处理
C中的形编程和像处理C语言作为一种广泛使用的编程语言,不仅可以用来进行常规的编程工作,还可以进行形编程和像处理。
本文将详细介绍C语言中形编程和像处理的相关内容。
一、形编程形编程(Graph Programming)是指使用编程语言来进行图形化操作和处理的技术。
在C语言中,我们可以通过调用图形库来实现形编程的功能。
常用的图形库有OpenGL、SDL、WinAPI等。
1.形编程工具的安装和配置要在C语言中进行形编程,我们首先需要安装和配置相应的形编程工具。
以使用OpenGL库为例,我们可以按照以下步骤进行配置:步骤1:下载对应的OpenGL库文件;步骤2:将库文件复制到指定的目录中;步骤3:在编程环境中配置库文件的路径和库名称;步骤4:引入头文件并编写相应的形编程代码。
2.基本形编程操作在C语言中进行基本的形编程操作,可以实现绘制简单的图形、实现图形的交互功能等。
下面是一些常用的形编程操作:- 绘制线段:可以使用形状的起始点和终止点,通过调用相应的函数,绘制直线;- 绘制矩形:可以使用矩形的左上角和右下角坐标,通过调用相应的函数,绘制矩形;- 绘制圆形:可以使用圆的中心点坐标和半径,通过调用相应的函数,绘制圆形;- 绘制曲线:可以通过定义曲线的控制点,通过调用相应的函数,绘制曲线;- 实现交互功能:可以通过监听鼠标或键盘事件,实现图形的交互功能,如点击图形进行操作等。
二、像处理像处理(Image Processing)是指使用编程语言对图像进行处理和操作的技术。
C语言可以通过调用相关的像处理库来实现像处理的功能。
常用的像处理库有OpenCV、ImageMagick等。
1.像处理工具的安装和配置要在C语言中进行像处理,我们需要安装和配置相应的像处理工具。
以使用OpenCV库为例,我们可以按照以下步骤进行配置:步骤1:下载对应的OpenCV库文件;步骤2:将库文件复制到指定的目录中;步骤3:在编程环境中配置库文件的路径和库名称;步骤4:引入头文件并编写相应的像处理代码。
第7章C语言图形编程基础
textattr(int attr);
参数attr使用了一个字节来描述文本的属性,各位的含义如图7.2所示。
7.2 文本模式下的图形处理
BLINK R
G
B
I
R
G
B
闪烁
背景色
加亮
图7.2 文本属性字节的含义
前景色
其中低4位(0~3)用来设置字符显示的颜色(前景色),对应于颜色值 0~15;第4~6位用于设置背景色;最高位用于设置显示出的字符是否闪 烁。
7.1 图形处理基础
2.EGA EGA(增强型图形适配器)除支持CGA的4种显示模式外,还增加了
分辨率为640*200像素的16色显示方式,TC中称为EGALO(EGA低分辨率 显示方式)和640*350像素的EGA高分辨显示方式(EGAHI),也可显示 16色。 3.VGA VGA(视频图形阵列适配器)是目前流行的PC显示标准,它支持CGA、 EGA的所有显示方式,同时还有640*480像素的高分辨率显示方式 (VGAHI)、640*350像素的中分辨率显示方式(VGAMED)和640*200 像素的低分辨率显示方式(VGALO),它们均有16种显示颜色可供选择。 4.MCGA MCGA的功能与CGA相似,它和CGA是部分兼容的,但有些功能又和VGA 类似,有640*480像素的两色模式。 5.IBM8514 IBM8514适配器具有较强的图形功能,最高分辨率可达1024*768像素,有
C语言图形编程
说明: 该函数执行后,把有关当前视口的信息装入info指向的viewporttype型结构中。
viewporttype结构定义如下:
struct viewporttype {
说明: 参数left,top是左上角坐标,right,bottom是右下角坐标,它们都是绝对屏幕坐标。
传给setviewport()的第五个参数是clip,如果clip为1,则超出视口的输出图形自动被裁剪掉,即所有作图限制于当前图形视口之内,如果clip为0,则不做裁剪,即作图将无限制地扩展于视口周界之外,直到屏幕边界。若无效参数传入setviewport(),则graphresult()函数返回值-11,先前视口设置仍有效。
BROWN(棕色) 6 YELLOW(黄色) 14
LIGHTGRAY(淡灰) 7 WHITE(白色) 15
-----------------------------------------------------------------
三、屏幕位置函数
50. getmaxx()返回最大x坐标函数
51. getmaxy() 返回最大y坐标函数
52. getx() 返回x坐标函数
53. gety() 返回y坐标函数
54. moveto()函数
55. moverel() 相对移动函数
一、屏幕和视口设置与清除函数
36. setviewport() 设置图形视口函数
功能: 函数setviewport() 设置当前图形视口。
用法: 函数调用方式为void setviewport(int left,int top,int right,int bottom,int clip);
如何利用C语言进行图形化编程
如何利用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语言图形编程(四、图形文本-01)
#include<conio.h>
void main()
{
int driver,mode;
mode=0;
initgraph(&driver,&mode,"");
outtext("Normal");
settextstyle(GOTHIC_FONT,HORIZ_DIR,2);
------------------------------------------------------------
显示方向符号名 等价值 说 明
------------------------------------------------------------
表1-14 图形文本标准字体
--------------------------------------------------------------------
字体符号名 等价值 含 义
--------------------------------------------------------------------
说明: 参数(x,y)给定要显示字符串的屏幕位置,string指向该字符串。调用此函数不影响当前光标位置,当然光标是不可见的。
该函数也要用当前绘图色、字体、字符大小、文本显示方向和水平垂直两个方向的文本排齐方式。
outtextxy()的对应头文件是graphics.h
返回值: 无
在垂直显示时,文本字符串从底部向上显示,目前还没有现成的规定从上到下或从左到右的显示,但若需要也可设计。
C语言图形化编程基础入门
二、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,能看到窗口发生了变化。
第10章C语言图形编程
3
10.1 图形模式的初始化
【实例10-1】绘制简单的图形。 实例 】绘制简单的图形。 #include <graphics.h> main(){ int gdriver,gmode; int errorcode; detectgraph(&gdriver,&gmode); /*自动探测图形显示器适配器种类 */ 自动探测图形显示器适配器种类 initgraph(&gdriver,&gmode,"g:\\tc\\bgi"); /*初始化图形系统 */ 初始化图形系统 errorcode = graphresult(); if(errorcode!=grOk) { printf("graphics error:%s\n",grapherrormsg(errorcode)); printf("press andy key to halt:"); getch(); exit(1); } circle(200,200,100); getch(); closegraph(); } /*画圆心为(200,200),半径为 的圆 */ 画圆心为( , ),半径为100的圆 ),半径为 画圆心为
7
(3)graphresult() 图形操作结果函数 ) 功能: 函数graphresult()函数返回最后一次图形操作的 功能: 函数 函数返回最后一次图形操作的 代码。 代码。 用法: 此函数调用方式为int graphresult(void); 用法: 此函数调用方式为 C为图形设置了代码,它们是从-15到0的整数值。其含义 为图形设置了代码,它们是从 的整数值。 为图形设置了代码 到 的整数值 见表10-1。调用该函数时,出错状态被复位为 ,所以 见表 。调用该函数时,出错状态被复位为0, 返回值(代码 最好存于变量中,以供需要时检测, 代码)最好存于变量中 返回值 代码 最好存于变量中,以供需要时检测,进行 下一步图形操作。 下一步图形操作。
C语言图形编程
void mydraw2(){ moveto(160,120); linerel(320,0); lineto(0,240); lineto(-320,0); lineto(0,-240); }
void mydraw3(){ circle(320,240,200); arc(320,240,0,120,100); ellipse(320,240,0,360,160,120); rectangle(100,100,450,400); }
六、图形方式下的文本 1.BGI字体 在图形方式下,BGI提供了两种输出文 本的方式,一种是位映象字符(或称 点阵字符);另一种是笔划字体(或 称矢量字符)。其中位映象字符为缺 省方式。 2.文本输出
(1)settextstyle函数 函数settextstyle用于在使用笔划字体之 前装入字体文件。其调用格式为: settextstyle(font,direction,csize); 函数所需的三个参数,其含义如下:
csize:是一个整数,表示字符的大小。 其取值范围是1-10。
(2)outtext函数 函数outtext用于在当前位置输出一个文 本字符串。 outtext(*text); (3)outtextxy函数 函数outtext用于在指定位置输出一个文 本字符串。 outtextxy(x,y,*text); 参数x,y:为指定位置;text为字符串。
计算机图形学
C语言图形函数及其用法
一、图形系统管理 1、图形方式初始化 Turbo C2.0语言使用函数initgraph来完 成图形初始化。其格式为: void intitgraph(int *gdriver,int *gmode,char *path); 其中参数gdriver和gmode是两个整型变 量的地址,而path是一个字符串变量。 设置当前路径。 gdriver和gmode的取值参阅其它书。
C语言图形编程技术
高级编程技术--tc 图形界面
高级编程技术
介绍如何利用 TC 系统所提供的相关函数实现菜单设计、图形绘制、动画的播放、乐曲 的演奏、汉字的显示、图片的显现等技术,在讲述时,以问题-解答的方式来逐渐阐明。 1 文本的屏幕输出和键盘输入........................................................................................... 1 1.1 文本的屏幕输出.....................................................................................................................1 1.2 键盘输入................................................................................................................................8 1.3 问题实现...............................................................................................................................11 1.4 高级应用——菜单实现.......
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言图形编程(一、字符屏幕)一、屏幕操作函数1. clrscr()清除字符窗口函数2. window()字符窗口函数3. gotoxy()光标定位函数4. clreol() 清除光标行尾字符函数5. insline() 插入空行函数6. delline() 删除一行函数7. gettext() 拷进文字函数8. puttext() 拷出文字函数9. movetext() 移动文字函数二、字符属性函数10. textmode() 文本模式函数11. highvideo()高亮度函数12. lowvideo() 低亮度函数13. normvideo(void);14. textcolor() 文本颜色函数15. textattr() 文本属性函数16.textbackground() 文本背景函数三、屏显状态函数17. wherex() 光标处x坐标函数18. wherey() 光标处y坐标函数19. gettextinfo() 获取文本窗口信息函数在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()函数的实例中。
2. window()字符窗口函数功能:函数window()用于在指定位置建立一个字符窗口。
用法:此函数调用方式为void window(int left,int top,int right,int bottom);说明:函数中参数left,top为窗口左上角坐标;right,bottom为其右下角坐标。
若有一个坐标是无效的,则window()函数不起作用。
一旦该函数调用成功,那么所有定位坐标都是相对于窗口的,而不是相对于整个屏幕。
但是建立窗口所用的坐标总是相对整个屏幕的绝对坐标,而不是相对当前窗口的相对坐标。
这样用户就可以根据各种需要建立多个互不嵌套的窗口。
此函数的头文件为conio.h。
返回值:无例:调用这个函数的实现例见3.gotoxy()函数的例子中。
3. gotoxy()光标定位函数功能:函数gotoxy()将字屏幕上的光标移到当前窗口指定的位置上。
用法:这个函数调用方式为void gotoxy(int x,int y);说明:括号里x,y是,光标定位的坐标,如果其中一个坐标值无效(如坐标超界),那么光标不会移动。
此函数在字符状态(有时称为文本状态)下经常用到,其相应的头文件为conio.h返回值:无例:下面程序建立两个窗口,然后在窗口里显示字符,字符的位置是调用该函数确定的。
#include"conio.h>void border(int startx,int starty,int endx,int endy){register int i;gotoxy(1,1);for(i=0;i<=endx-startx;i++)putch('-');gotoxy(1,endy-starty);for(i=0;i<=endx-startx;i++)putch('-');for(i=2;i<=endy-starty;i++){gotoxy(1,i);putch('1');gotoxy(endx-startx+1,i);putch('1');}}main(){void border(int,int,int,int);clrscr();window(6,8,38,12);border(6,8,38,12);gotoxy(2,2);printf("window 1");window(8,16,40,24);border(8,16,40,24);gotoxy(3,2);printf("window 2");getch();}4. clreol() 清除光标行尾字符函数功能:函数clreol()在当前字符窗口中清除从光标位置到行尾的所有字符,而光标位置保持不变。
用法:它的调用方式为void clreol(void);说明:此函数的相应头文件为conio.h返回值:无例:程序中使用了函数clreol()和clrscr()#include "conio.h>void main(){register int i;gotoxy(6,8);printf("This is a test of the clreol() function.");getch();gotoxy(6,8);clreol();for(i=0;i<20;i++)printf("Hello\n");getch();clrscr();}5. insline() 插入空行函数功能:函数insline()插入一空行到当前光标所在行上,同时光标以下的所有行都向下顺移一行。
用法:此函数的调用方式为void insline(void);说明:该函数只用于文本方式,并且在当了符窗口才有效。
这个函数的对应头文件是conio.h返回值:无例:程序给出了insline()函数的用法。
#include "conio.h"void main(){registser int i;clrscr();for(i=1;i<24;i++){gotoxy(1,i);printf("This is line %d\n",i);}getch();gotoxy(1,10);insline();getch();}6. delline() 删除一行函数功能:函数delline()删除当前窗口内光标所在行,同时把该行下面所有行都上移一行。
用法:此函数调用方式为void delline(void);说明:注意,如果当前窗口小于整个屏幕,那么该函数只影响到窗口内的字符。
这个函数相应的头部文件是conio.h返回值:无例:先在屏幕上显示16行文字,然后删除第4行#include "conio.h"void main(){register int i;clrscr();for(i=0;i<16;i++) printf("line %d\n",i);getch();gotoxy(1,4);delline();getch();}7.gettext() 拷进文字函数功能:函数gettext()用于文本状态下将屏幕上矩形域内的文字拷进内存。
用法:该函数调用方式为int gettext(int left,int top,int right,int bottom,void *buffer);说明:函数中参数left,top为矩形区域的左上角坐标,right,bottom为其右下角坐标,这些坐标是屏幕的绝对坐标,不是窗口的相对坐标。
buffer指针必须指向一个足够保存该矩形域内文字的内存。
所用内存大小按下式计算:点头用字节数=矩形哉内的行数×矩形域的列数×2这里将行数乘以列数再乘以2的原因是保存屏幕上每个字符要用两个字节存储单元,一个字节存储单元存放字符本身,而另一个存放其属性。
此函数相应的头文件是conio.h返回值:若函数调用成功则返回1,否则返顺0。
例:把屏幕左上角点(1,1)和右下角点(10,10)的区域拷贝到buf指向的内存中去。
buf=(char *)malloc(10*10*2);if(!buf)gettext(1,1,10,10,buf);8. puttext() 拷出文字函数功能:函数puttext()把先前由gettext()保存到buffer指向的内存中的文字拷出到屏幕上一个矩形区域中。
用法:此函数调用方式为int puttext(int left,int top,int right,int bottom,void *buffer);说明:函数里left,top为给出的屏幕上矩形区域的左上角点,right,bottom为其右下角点,其坐标是用屏幕的绝对坐标,而不是用窗口的相对坐标。
该函数相应的头文件为conio.h返回值:函数调用成功返回值为1,否则返回0。
例:屏幕上某个区域内容拷进buf指向的内存中,然后又将这些文字拷出到屏幕上新位置。
buf=(char *)malloc(10*10*2);gettext(1,1,10,10,buf);puttext(16,16,30,30,buf);9. movetext() 移动文字函数功能:函数movetext()将屏幕上一个矩形区域的文字移到另一个区域上。
用法:该函数调用方式为int movetext(int left,int top,int right,int bottom,int newleft,int newtop);说明:上面left,top为矩形区域上角坐标,right,bottom为其右下角坐标,newleft,newright为移动到区域左上角坐标。