C语言图形程序设计基础PPT学习教案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
少可显示40X25=1000个字符。显示字符越多,每个字符 尺寸越小,反之越大 。 ➢ 显示模式不同,屏幕坐标的构成也不相同。比如: (1)在BW40方式下,最大坐标位置为(25,40); (2)在C4350方式下,最大坐标位置为(50,80);
第3页/共96页
2021/7/4
4
2. 图形模式与点坐标系 在屏幕上显示图形的方式称为图形 模式。 在图形 模式下,屏幕是 由像素 点组成 的,像素 点的多 少决定 了屏幕 的分辨 率。分 辨率越 高,显示 图形越 细致,质量越 好。
C语言图形程序设计基础
例3自动搜索显示类型和模式并初始化画图 #include"graphics.h" main() {
第18页/共96页
2021/7/4
19
C语言图形程序设计基础
int gdriver=DETECT,gmode;
/*自动搜索显示器类型和显示模式*/
initgraph(&gdriver,&gmode,“C:\\TC");
第6页/共96页
2021/7/4
7
28021/7/4
3.1.2、图形驱动程序与图形模式
C语言图形程序设计基础
1.图形驱动程序 对于不同的图形显示器,其控制方式各有差异,因此要
显示图形就需要先装入相应的图形驱动程序。TurboC 支 持以下几种图形驱动程序:
符号常量
数值
符号常量
数值
DETECT
0
IBM8514
#include <graphics.h> 同时将集成开发环境option/Linker中的graphics.lib选 项设置为”on”。 下面我们介绍:图形系统的初始化、图形系统的关闭、
图形模式控制。
第10页/共96页
2021/7/4
11
C语言图形程序设计基础
✓1.图形系统的初始化 图形模式是有别于文本模式的一种计算机屏幕显示模
第15页/共96页
2021/7/4
16
C语言图形程序设计基础
例2、 测试硬件显示模式和绘制图形
#include "graphics.h" main() { int gdriver,gmode; detectgraph(&gdriver,&gmode);
/*测试结果存放于 gdriver,gmode中*/ if(gdriver<0) { printf("there is not graphics displayer\n"); exit(1); } /*无图形显示模式时,显示信息,停止程序*/
C语言图形程序设计基础
如右图所示
1.屏幕由许多像素点 组成;
2.图形的显示效果取 决于分辨率的高 低;
第4页/共96页
2021/7/4
5
例如:CGA显示器的分辨率为300X20 0,TV G显 示器的分辨率为1024X768, TVGA比CGA分率高。
在图形模式下,屏幕上每个像素的显 示位置 用点 坐标来描述的。点坐标系是以屏幕 左上角 为坐标 原点(0,0) ,水平 方向为 X轴, 自左向 右;垂 直方向 为Y轴, 自上向 下。如 下图所 示:
进行初始化,即启动图形系统,进入绘图状态,在程序结束 时都用函数closegraph()关闭图形系统。
➢closegraph()函数
[格式] void far closegraph(); [功能] 关闭图形模式。 [说明] 函数closegraph()用来关闭图形模式,
6
CGA
1
HERCMONO
7
MCGA
2
ATT400
8
EGA
3
VGA
9
0
EGAMONO
5
第7页/共96页
29021/7/4
C语言图形程序设计基础
2.图形模式 由于每种图形显示器都有几种不同的图形显示模式,所
以要显示图形,不但要先装入相应的驱动程序,而且还要 决定所用的显示模式。 TurboC 常采用的几种图形驱动程 序及相应的模式
bar3d(10,20,50,80,10,1);
getch();
/*等待按一键结束*/
closegraph(); /*关闭图形系统,回到文本模式*/
return(0);
}
第17页/共96页
2021/7/4
18
(3)自动初始化图形系统。 一般在程序设计中,可以把对图形显 示器的 检测和
初始化工作放在一起来自动完成,规定 Gdri ver = DETECT,则initgraph()函数会自动按照系统 所配置 的图形显示器来确定驱动程序,并把图 形模式 设置为 检测到的驱动程序的最高分辨率,实现 图形系 统的初 始化.
驱动程序 (driver)
EGA
VGA
注:1. 不同的图形驱动程序有不同的图形模式; 2. 同一图形驱动程序,也可能会有几种图 形模式 ;
图形(gmode)
EGAHI EGALO VGALO VGAMED VGAHI
等价值
0 1 0 1 2
分辨(dpi)
640X200 640X350 640X200 640X350 640X480
第9页/共96页
3.1.3、图形系统初始化和模式控制
C语言图形程序设计基础
TurboC提供了十分丰富的图形库函数,共有70多个, 所有图形函数的原型均在头文件“graphics.h”中定义。 所以,在任何使用图形函数的程序中,都要求其头部 包含文件graphics.h,即在程序文件的开头写上文件 包含命令:
而在图形模式下在图形模式下以左上角为坐标原点以左上角为坐标原点0000水平方水平方向向右为向向右为xx轴垂直方向向下为轴垂直方向向下为yy轴由于图形显示器和显示模式的不同由于图形显示器和显示模式的不同xxyy坐标的最大值坐标的最大值也就不同也就不同可利用可利用turbocturboc提供的函数来提供的函数来设定坐标设定坐标定定点点读取当前光标的位置读取当前光标的位置以及以及xxyy轴的最大值轴的最大值
第11页/共96页
2021/7/4
12
C语言图形程序设计基础
➢initgraph()函数
[格式]void far initgraph(int *gdriver,int *gmode,char *path);
[功能] 将图形驱动软件装入内存,使屏幕显示适配器设置为 图形模式,即图形系统初始化;
[说明] 1. gdriver是一个整型值,用来指定要装入的图形驱动程 序;该值在头文件graphics.h中定义; 2. gmode是一个整型值,用来设置图形显示模式。图形 显示模式决定了显示的分辨率和显示的颜色的多少等; 3. path是一个字符串,用来指明图形驱动程序所在的路 径.
第1页/共96页
2021/7/4
2
C语言图形程序设计基础
由于显示模式的不同,所显示的字符的列数和行数以及颜色也不 相同。C支持以下6种不同的显示方式。
(1)BW40:黑白40列方式。显示25行文本,其中每行40个字 符,以黑白两色显示。
(2)C40:彩色40列方式。可显示40列25行彩色字符。 (3)BW80:黑白80列方式。可显示80列25行字符。 (4)C80:彩色80列25行显示方式。 (5)MONO:单色80列25行显示方式。 (6)C4350:一种特殊的彩色文本方式,适和EGA和VGA两
则在条形图上加一个顶。
第14页/共96页
2021/7/4
15
(2)不知显示器类型的图形系统初始 化。 若在编写程序过程中,不知道当前 系统屏 幕硬件 的
类型或编写的程序要用于不同的图形 显示器 ,这就 要
求所编程序能知当前图形显示器的代 码,Tur bo C供 了一个对图形显示器硬件测试的函数detectgraph() 。
C语言图形程序设计基础
➢detectgraph()函数
[格式] void far detectgraph(int *gdriver,int *gmode ); [功能] 在计算机有图形适配器的情况下,确定图形适配器
的类型; [说明] 1.若系统有图形适配器,则把gdriver指的变量设置
为适合于适配器的图形驱动程序的代码,并把gmode所 指的变量设置为适配器所能支持的最高分辨率。2.若系 统无图形适配器,则gdriver所指的变量为-2.
/*选用CGA图形模式*/
initgraph(&gdriver,&gmode,“D:\\TC");
/*初始化图形系统*/
则图形系统的初始化可用下面程序,例如:
第13页/共96页
2021/7/4
14
C语言图形程序设计基础
bar3d(10,20,50,80,0,0); /*画一条形图*/
getch();
种适配器。若用EGA适配器,显示80列43行;若用VGA适 配器,则显示80列50行。
第2页/共96页
2021/7/4
3
C语言图形程序设计基础
注:
➢ 在不同的显示模式下,屏幕所显示的字符数量也不一样。 ➢ X方向一般为40列或80列,Y方向一般为25行,但EGA和
VGA适配器可达43行或50行。 ➢ 在文本模式下,屏幕最多可显示80X50=4000个字符,至
/*初始化图形系统*/
bar3d(10,20,50,80,10,1);
/*画一三维立体有顶矩形*/
getch();
/*等待按一键结束*/
closegraph();
/*关闭图形系统,回到文本模式*/
return(0);
}
第19页/共96页
2021/7/4
20
C语言图形程序设计基础
✓2.图形系统的关闭 在图形编程中,我们均用函数initgraph()对图形系统
/*等待按一键结束*/
closegraph(); /*关闭图形系统,回到文本模式
*/
} 程序注释: ➢ bar3d()函数 [格式]: void bar3d(int x1,int y1,int x2,int y2,
int depth,int topflag); [功能]: 画一填充的三维条形图;
[说明]: depth为条形的深度; topflag=0则不加顶,否
C语言图形程序设计基础
2021/7/4
(0,0) Max y
Max x
图-2 点坐标系
注:点坐标系坐标值 的范围取决于所用的 适配器/显示分辨率
第5页/共96页
6
C语言图形程序设计基础
由于屏幕的分辨率不同,水平方向和垂直方向的点数也
不一样,从而点坐标系的Max x 、
Max y 数值
也不同。
在TurboC中,坐标数据可以用两种形式给出:一种是 绝对坐标,另一种是相对坐标。
C语言图形程序设计基础
会计学
1
C语言图形程序设计基础
字符坐标系是以屏幕的左上角为坐标原点,水平方向 为 X轴,垂直方向为Y轴,如下图-1所示:
(1,1)
(8,20) Max y
Max x
表示字 符位于 屏幕的 第8行第 20列
图-1 字符坐标系
注:字符坐标系的原点为(1,1),水平方向(X轴)分为若干列,垂直方向 (Y轴)分为若干行,用一对坐标可以指定屏幕上一个位置。
驱动程序 (driver) 图形(gmode) CGAC0
CGA
CGAC1
CGAC2
CGAC3
等价值
0 1 2 3
分辨(dpi)
320X200 320X200 320X200 320X200
CGAHI
4
640X200
表2.2 图形驱动程序及相应的模式
第8页/共96页
21021/7/4
C语言图形程序设计基础
注: ✓1.若驱动程序就在用户当前目录下,则path可为空字符串,否则应 给出具体路径名。一般情况下,TurboC安装在C盘的TC目录中,则该 路径为:C:\TC,若写在参数中则为“C:\\TC”; ✓2.前两个参数实际上是整型指针,调用时应加上地址运算符“&”;
第12页/共96页
2021/7/4
13
C语言图形程序设计基础
。 (1)已知显示器类型的图形系统初始化
如果已经知道所用图形显示器的种类和要使用的图形模
式 例1 画一实心矩形 #include"graphics.h" main() { int gdriver,gmode;
gdriver=CGA;
/*设置显示模式CGA*/
gmode=CGAC0;
式。屏幕一般在默认情况下为80列25行的文本模式, 在文本模式下,所有的图形函数均不能操作,因此在使 用图形函数绘图之前,必须将屏幕显示适配器设置为一 种图形模式,即为图形初始化过程。
图形系统初始化首先要调用initgraph()函数,它通过 从磁盘上装入一个图形驱动程序来初始化图形系统, 并将系统设置为图形模式。
printf("detect graphics driver is # %d,mode is # %d \n",gdriver,gmode); /*显示硬件测试结果*/
getch();
/*等待按一键结束*/
第16页/共96页
2021/7/4
17
C语言图形程序设计基础
initgraph(&gdriver,&gmode,"c:\\tc") ; /*初始化图形系统*/
(1)绝对坐标的参考点是坐标的原点(0,0),x和y只 能取规定范围(0, Max x )和(0, Max y )内的正整 数;
(2)相对坐标是相对“当前点”的坐标,其坐标的参考 点是当前点。在相对坐标中, x和y的取值是相对当前点 在x方向和y方向上的增量,故x和y可以为正整数,也可 以为负整数。
相关文档
最新文档