计算机图形学实验
指导书
2024年4月19日
1
文档仅供参考,不当之处,请联系改正。
【】第一章 计算机图形学的软件开发环境
计算机图形学中的程序都是用C语言编写的,Turbo C和Visual C++常见的两种C语言开发环境,Turbo C是在Dos环境下开发,而Visual C++是在Windows环境下开发。 1.1、在Turbo C环境下开发应用程序
一些高级语言都扩充了图形功能,这使得用户能够不需配备专门的图形软件,就能在计算机上进行图形工作。Turbo C 2.0包含有460多个库函数,其中有 70 多个图形函数,这些函数包括了绘图、处理图象及图素、屏幕及视图区控制、颜色及线型设置、状态查询和出错处理等,这使得 TurboC具有很强的图形功能。 1.图形显示器的工作方式
IBM PC 机的显示器能够在两种基本视频方式下工作:一种是文本方式;另一种是图形方式。 ( 1 )文本方式
在文本方式下,屏幕上能够显示的最小单位是字符,字符在屏幕上以行、列排列,即我们一般见到的情况。文本方式不同,屏幕上所显示字符的行数和列数也不一样,颜色也会有所区别。Turbo C 支持 6 种不同的文本显示方式。 ( 2 )图形方式
在图形方式下,屏幕上能够控制的最小单元称作像素 ( pixel ) ,它是组成图形的基本元素,一般叫作“点”。一般把屏幕上所包含像素的个数叫做分辨率。分辨率越高,显示的图形越细致、质量越好,这是显而易
2
2024年4月19日
文档仅供参考,不当之处,请联系改正。
见的。在图形方式下,屏幕上每个像素的显示位置用点坐标系来描述。在该坐标系中,屏幕左上角为坐标系的原点,坐标值为 ( 0 , 0 ) ; 水平方向为X轴,自左向右;垂直方向为Y轴,自上向下。见下图。
点坐标系中坐标值的范围决定于所用显示器的分辨率。分辨率不同,水平方向上和垂直方向上的点数也不同,即其 maxx 、maxy 的数值不同。就我们常见的 VGA 显示器来说,它一般所用的分辨率为 6405480 ,即它的 maxx 值为 639 , maxy 的值为 479。 2. 图形函数及其用法
Turbo C 的图形函数均在一个头文件“ graphics.h” 中定义。因此,凡是在程序中要调用这些图形函数,都必须在源程序的开头写上文件包含命令:
# include < graphics .h >
(1) 图形系统管理
在一般默认情况下,显示器处于文本方式下。在文本方式下,所有的图形函数均不能应用。因此在调用图形函数绘图之前,必须先将显示
3
2024年4月19日
文档仅供参考,不当之处,请联系改正。
器设置为图形模式,这就是一般所说的图形方式初始化。在图形工作完毕之后,又要使显示器回到文本方式,以便进行程序文件等的编辑工作。
?
图形方式初始化
图形方式初始化经过函数 initgraph 来实现,它的功能是经过从磁盘
上装入一个图形驱动程序来初始化图形系统,并将系统设置为图形模式。其调用格式为:initgraph(int *gdriver,int *gmode,char *path); 调用该函数需用的三个参数含义为:
gdriver :是一个整型值,用来指定装入的驱动程序名。
gmode :是一个整型值,用来设置图形显示模式。path :是一个字符串,用来指明驱动程序所在的路径。
举例:假设使用 VGA 显示器,图形显示模式为 VGAHI ,即高分辨率图形模式,分辨率为 6405480 。则初始化调用方式如下: int gdriver = VGA , gmode = VGAHI ; initgraph (&gdriver , &gmode , “c:\\\\ tc”);
?
关闭图形模式
在运行图形程序结束后,应及时关闭图形模式,回到文本方式,以
进行其它工作。关闭图形模式用函数 closegraph , 其调用方法为: closegraph ( ) ;(该函数不需参数) (2) 绘图函数
从理论上来说,用像素点几乎能够画出任何图形,但毕竟是效率太低。为此,Turbo C 的 BGI 提供了一些基本的绘图函数,以方便图形设
4
2024年4月19日
文档仅供参考,不当之处,请联系改正。
计。所有绘图函数调用时的参数,其类型均为整型,因此填入参数表的参数,应为整数或整型变量
putpixel 函数:将指定的颜色写到由坐标x,y所确定的点。如putpixel(x,y,GREEN);
line 函数:在指定两点之间画直线。如:line ( x1 , y1 , x2 , y2 ) ; lineto 函数:从当前点画线到指定点。如:lineto ( x , y ) ;
moveto 函数:把当前点移到指定点(不画线)。如:moveto ( x , y ) circle 函数:指定圆心和半径画圆。如:circle ( xc , yc , r ) ;
arc 函数:画一段圆弧。要求指定圆弧所在圆的圆心、半径,以及圆弧的起始角和终止角。
如:arc ( xc , yc , angs , ange , r ) ;
rectangle 函数:指定矩形的两对角点画一个矩形。如:rectangle ( x1 , y1 , x2 , y2 ) ;
drawpoly 函数:画一条任意多边折线。如:drawpoly ( nps , xy ) ;其中,nps 为多边折线的顶点数;x y 为存放顶点坐标值的数组名。如果首尾两点重合,则能够绘制一个任意多边形。 (3) 图形属性控制
图形的属性指颜色和线型,颜色又有背景色和前景色之分。背景色指的是屏幕的颜色,即底色;前景色指的是绘图用的颜色。任何绘图函数都是在当前颜色(背景色和前景色)和线型的状态下作图的。系统的默认值为:背景色为黑色;前景色为白色;线型为实线。
?setbkcolor 函数:设置背景颜色。如:setbkcolor ( COLORNAME ) ;
5
2024年4月19日