C语言图形函数大全(7)
时间:2025-07-14
时间:2025-07-14
C语言图形函数大全
数将上述图形在新位置上显示出来,使用时注意所选区域的大小,不要产生出尾巴现象。 (4)分页技术法 所谓“分页技术法”就是对同一幅图像同时进行显示与编辑修正。正在屏幕上显示的页叫显示页,保存在内存区域正在被编辑的页叫编辑页。我们在编辑页上画好图形后,立即将该页变为显示页在屏幕上显示,然后在原来的显示页(现在为编辑页)上进行编辑修改。画好后再次交换,如此反复循环变换,在我们看来就好像同一幅画在不断变化,也就出现了动画效果。 2、制作动画所需函数
(1)delay( ):暂停函数 ――头文件(dos.h) 原型:void delay(unsigned millseconds); 功能:暂停当前所执行的程序millseconds毫秒。
(2)getimage( ):将指定区域的图像存入内存的函数――头文件(graphics.h) 原型:void getimage(int x1,int y1,int x2,int y2,void far *buf); 功能:将图像(矩形区域)从屏幕拷贝到内存中,*buf指向内存中存放图像的区域,该区域的前两个字节用于存放矩形的高和宽。
(3)putimage( ):重新写屏函数(输出一个图像到图形屏幕上的函数)――头文件(graphics.h) 原型:void putimage(int x,int y,void far *buf,int op); 功能:将getimage( )函数储存在buf所指向的内存区域的图像输出到屏幕上。其中op的值决定了图形以何种方式写到屏幕上。 COPY_PUT或0 原样复制 XOR_PUT或1 与屏幕图形取“异或”后写入 OR_PUT或2 与屏幕图形取“或”后写入 AND_PUT或3 与屏幕图形取“与”后写入 NOT_PUT或4 复制图形的“逆” 使用不同的方式将图形写到屏幕上,可以实现图形变换。例如采用异或方式在原始位置重写,那么原图将消失。如果再使用复制方式在一个新地方重现该图形,就产生了图形的移动。 (4)imagesize( ):返回保存图像缓冲区大小的函数 原型:unsigned far imagesize(int x1,int y1,int x2,int y2);――头文件(graphics.h) 功能:确定保存图像所需的存储区大小。 返回值:返回存储区的大小(字节),若所需内存大于等于64K字节,则返回0xffff(-1). 上面三个函数用于将屏幕上的图像复制到内存,然后再将内存中的图像送回到屏幕上。首先通过函数imagesize( )测试要保存的左上角为(x1,y1),右上角为(x2,y2)的图形屏幕区域内的全部内容需多少个字节,然后再给*buf分配一人个所测数字节内存空间的指针。通过调用getimage( )函数就可将该区域内的图像保存在内存中,需要时可用putimage( )函数将该图像输出到左上角为点(x,y)的位置上。其中getimage( )函数的参数op规定如何释放内存中的图像。 (5)激活页函数 原型:void far setactivepage(int pagenum) ; void far setvisualpage(int pagenum); 这两个函数只用于EGA,VGA以及HERCULES图形适配器。setactivepage( )函数是为图形输出选择激活页。所谓“激活页”是指后续图形的输出被写到函数所定的pagenum页面,该页面并不一定可见。Setvisualpage( )函数才使pagenum所指定的页面变成可见页。页面从0开始(TC默认页)。如果先用setactivepage( )函数在不同页面上画出一幅幅图像,再用setvisualpage( )函数交替显示,就可以实现一些动画的效果。详细参见例[2.15]:模拟两个小球动态碰撞过程;例[2.16]使用激活页方法动态变换显示大小变化的“HELLO”字符串。
下一篇:第1章概论(上课)