1、自动显示技术实验一、计算机显示知识一、上机实验目的 1. 观察计算机显示系统构成,认识彩色显示的相关硬件和软件。 2. 了解计算机图形显示过程并学习 VGA显示模式设置知识。 3. 了解计算机显示器特性和使用,认识计算机图形显示的控制与编程技术知识。 二、实验设备及软件 1. 计算机系统 1 套; 2. 测试和应用软件 若干; 3. 高倍放大镜 1 个; 4. 课程多媒体软件 1 套;三、上机实验内容 1. 认识计算机显示系统构成结构 A、 观察计算机的基本外部构成;主机和显示器。B、 观察VGA显示器的基本特性;C、 观察VGA显示卡及显示器的显示信号接口。1、VGA采用模拟接口与显示器相连
2、,极大地提高了VGA的色彩显示能力。2、VGA的寄存器除了少数几个外都是可读写的,这给编程提供了很大的方便。3、VGA将其占用存储器的时间减到了最小,使得CPU能以快得多的速度来读写显示存储器。4、VGA将16色模式的分辨率提高到了640480,同时VGA新提供了一种具有320200分辨率、256种颜色的图形模式。2. 认识VGA显示模式 A、 认识计算机的字符模式及其基本特点; 计算机的字符模式:计算机的字符模式也称文本模式,在字符模式下,最基本的操作单元为字符,一屏所能显示字符的行数和列数及字符属性的表示方法即构成了一种具体的字符显示模式。计算机的字符模式的基本特点:具有极快的显示速度,但
3、它不能显示图形B、 认识计算机图形模式的种类、表示及其特点和主要特性参数;计算机图形模式的种类:普通模式和高级模式一般表示为:水平象素数*垂直象素数*色彩模式,如512*480*32K色特点:图形模式由各种色素和各种分辨率相组合,但这种组合不完全,在某些色彩模式下不具有某些分辨率。一定的分辨率有一定的象色素数,一定的色彩模式决定了每个象素在显示存储器中所占用的位数,每种显示模式部有一定的存储需要量。主要特性参数:所需显存容量、实际最低配置显存容量C、 学习设置计算机图形模式的方法及相关要点;第一种图形操作法:显示存储器的读写第二种图形操作法:VGA寄存器的操作第三种图形操作法:视频BIOS的中
4、断3. 了解计算机显示系统特性指标及其参数 A、 观察并了解Windows下VGA显示卡视频地址空间特性; B、 使用测试软件测试计算机显示特性及其指标; C、 使用应用软件观察显示模式的特性 D、 使用课程多媒体教程学习计算机显示部件知识四、基本实验问题: 1、 计算机DOS下的显示模式是多少?答:显示模式为字符模式:80列、25行。 2、 当前计算机 Windows下的图形显示模式为多少? 答 :1024*768 32位真彩 75Hz3、 VGA彩色显示器屏幕上象素点的构成方式是怎样的?答:CRT图形显示是直接将整个屏幕分成m行,每行分成n个点,每个点称为一个象素。4、 当前计算机 VGA
5、显示系统的基本参数是多少? 5、 Windows下VGA显示卡视频地址空间是多少? 答:VGA显示卡视频地址空间:内存000A0000-000BFFFF 内存E0000000-E7FFFFFF 内存EC000000-ECFFFFFF 端口 03B0-03BB端口 03C0-03DF6、 Windows下VGA图形显示模式调节类型有哪些?如何调节和设定?答:VGA图形显示模式调节类型有:普通模式和高级模式图形模式所需显存容量实际最低配置显存容量类型64048016色150K256K普通模式80060016色235K256K普通模式102476816色384K512K普通模式1280102416色
6、640K1M高级模式1600120016色938K1M高级模式2048204816色2048K2M高级模式320200256色63K256K普通模式640400256色250K256K普通模式640480256色300K512K普通模式800600256色469K512K普通模式1024768256色768K1M普通模式12801024256色1280K2M高级模式16001200256色1875K2M高级模式20482048256色4096K4M高级模式32020032K色125K256K普通模式51248032K色480K256K普通模式64048032K色600K1M普通模式800600
7、32K色938K1M普通模式102476832K色1536K2M高级模式1280102432K色2560K4M高级模式1600120032K色3750K4M高级模式32020064K色125K256K普通模式51248064K色480K256K普通模式64048064K色600K1M普通模式80060064K色938K1M普通模式102476864K色1536K2M高级模式1280102464K色2560K4M高级模式1600120064K色3750K4M高级模式32020016M色200K256K普通模式64048016M色960K1M普通模式80060016M色1407K2M高级模式102
8、476816M色2304K4M高级模式1280102416M色3840K8M高级模式1600120016M色5625K8M高级模式调节和设置:(1)在桌面上右键,选择属性,如图所示:(2)在上图中选择设置,如下图所示,在图中设置屏幕分辨率为1024768,在颜色质量上选择32位真彩色。实验二、 C 语言图形基础知识一、上机实验目的1. 认识C 语言程序中的图形参数和有关图形显示的基础知识;2. 学习C 语言各种图形函数和图形命令及其使用。3. 学习并运行图形显示例程,掌握C 语言图形编程基本常识。二、实验设备及软件1. 计算机系统 1 套;2. C 语言教程软件 1 套;3. C 语言编程软件
9、 1 套4. 课程多媒体软件 1 套;三、上机实验内容1. 学习教程中有关图形的基本知识图形模式初始化设置、颜色代码调用、图形显示基本功能等;2. 认识并掌握C 语言图形函数及其使用各种图形的C 语言函数,如点、直线、矩形、圆、扇形、椭圆及多边形等;图形函数的基本表示、含义以及基本应用;3. 初步认识C 语言图形函数的编程与运行在C 语言环境下,运行图形程序示例,观察显示结果,分析程序结构和含义,学习C 语言图形函数的编程应用;4. 修改相关程序内容,观察运行结果,总结经验和结论分析。四、上机实验报告根据实验内容,在计算机上操作和观察、学习,并围绕上述内容写出实验结论及观察报告,写出相应的运行
10、程序实例和运行结果,以及修改内容和相应运行结果的变化,分析其结论原因。(不少于3 个有代表性程序及运行、修改的结论)。1. 源程序: #include #include #include #include int main(void) /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int i, maxx, maxy; /* our polygon array */ int poly8; /* initialize graphics, local variables */ initgraph(&gdriv
11、er, &gmode, c:tcbgi ); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ printf(Graphics error: %sn, grapherrormsg(errorcode); printf(Press any key to halt:); getch(); exit(1); /* terminate with an error code */ maxx = getmaxx(); maxy = get
12、maxy(); poly0 = 20; /* 1st vertext */ poly1 = maxy / 2; poly2 = maxx - 20; /* 2nd */ poly3 = 20; poly4 = maxx - 50; /* 3rd */ poly5 = maxy - 20; /* 4th vertex. fillpoly automatically closes the polygon. */ poly6 = maxx / 2; poly7 = maxy / 2; /* loop through the fill patterns */ for (i=EMPTY_FILL; iU
13、SER_FILL; i+) /* set fill pattern */ setfillstyle(i, getmaxcolor(); /* draw a filled polygon */ fillpoly(4, poly); getch(); /* clean up */ closegraph(); return 0;_修改后:#include #include #include #include int main(void) /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int i, maxx,
14、maxy; /* our polygon array */ int poly8; /* initialize graphics, local variables */ initgraph(&gdriver, &gmode, c:tcbgi); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ printf(Graphics error: %sn, grapherrormsg(errorcode); printf(Press a
15、ny key to halt:); getch(); exit(1); /* terminate with an error code */ maxx = 450; maxy = 320; poly0 = 30; /* 1st vertext */ poly1 = maxy / 2; poly2 = maxx -20; /* 2nd */ poly3 = 20; poly4 = maxx -30; /* 3rd */ poly5 = maxy - 20; /* 4th vertex. fillpoly automatically closes the polygon. */ poly6 = m
16、axx / 2; poly7 = maxy / 2; /* loop through the fill patterns */ for (i=EMPTY_FILL; i3; i+) /* set fill pattern */ setfillstyle(i, 1); /* draw a filled polygon */ fillpoly(4, poly); getch(); /* clean up */ closegraph(); return 0;_ 2源程序:#include #include #include #include int main(void) /* request aut
17、o detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; int stangle = 45, endangle = 135, radius = 100; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, c:tcbgi); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error
18、 occurred */ printf(Graphics error: %sn, grapherrormsg(errorcode); printf(Press any key to halt:); getch(); exit(1); /* terminate with an error code */ midx = getmaxx() / 2; midy = getmaxy() / 2; /* set fill style and draw a pie slice */ setfillstyle(EMPTY_FILL, getmaxcolor(); pieslice(midx, midy, s
19、tangle, endangle, radius); /* clean up */ getch(); closegraph(); return 0;_修改后:#include #include #include #include int main(void) /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; int stangle = 45, endangle = 135, radius = 100; /* initialize graphics and local vari
20、ables */ initgraph(&gdriver, &gmode, c:tcbgi); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ printf(Graphics error: %sn, grapherrormsg(errorcode); printf(Press any key to halt:); getch(); exit(1); /* terminate with an error code */ midx
21、 =100; midy =200; /* set fill style and draw a pie slice */ setfillstyle(EMPTY_FILL, getmaxcolor(); pieslice(midx, midy, stangle, endangle, radius); /* clean up */ getch(); closegraph(); return 0;_3源程序: #include #include int main() int i, gdriver, gmode, size; void *buf; gdriver=DETECT; initgraph(&g
22、driver, &gmode, c:tcbgi); setbkcolor(BLUE); cleardevice(); setcolor(LIGHTRED); setlinestyle(0,0,1); setfillstyle(1, 10); circle(100, 200, 30); floodfill(100, 200, 12); size=imagesize(69, 169, 131, 231); buf=malloc(size); getimage(69, 169, 131, 231,buf); putimage(500, 269, buf, COPY_PUT); for(i=0; i1
23、85; i+) putimage(70+i, 170, buf, COPY_PUT); putimage(500-i, 170, buf, COPY_PUT); for(i=0;i185; i+) putimage(255-i, 170, buf, COPY_PUT); putimage(315+i, 170, buf, COPY_PUT); getch(); closegraph(); _修改后:#include #include int main() int i, gdriver, gmode, size; void *buf; gdriver=DETECT; initgraph(&gdr
24、iver, &gmode, c:tcbgi); setbkcolor(BLUE); cleardevice(); setcolor(LIGHTRED); setlinestyle(0,0,1); setfillstyle(1, 10); circle(300, 100,100); floodfill(100, 200, 12); size=imagesize(69, 169, 131, 231); buf=malloc(size); getimage(69, 169, 131, 231,buf); putimage(500, 269, buf, COPY_PUT); for(i=0; i185
25、; i+) putimage(70+i, 170, buf, COPY_PUT); putimage(500-i, 170, buf, COPY_PUT); for(i=0;i185; i+) putimage(255-i, 170, buf, COPY_PUT); putimage(315+i, 170, buf, COPY_PUT); getch(); closegraph(); _4源程序:#include #include #include #include int main(void) /* request auto detection */ int gdriver = DETECT
26、, gmode, errorcode; int maxx, maxy; /* initialize graphics, local variables */ initgraph(&gdriver, &gmode, ); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ printf(Graphics error: %sn, grapherrormsg(errorcode); printf(Press any key to ha
27、lt:); getch(); exit(1); /* terminate with an error code */ maxx = getmaxx(); maxy = getmaxy(); /* select drawing color */ setcolor(getmaxcolor(); /* select fill color */ setfillstyle(SOLID_FILL, getmaxcolor(); /* draw a border around the screen */ rectangle(0, 0, maxx, maxy); /* draw some circles */ circle(maxx / 3, maxy /2, 50); circle(maxx / 2, 20, 100); circle(maxx-20, maxy-50, 75); circle(20, maxy-20, 25); /* wait for a key */ getch(); /* fill in bounded region */ floodfill(2, 2, getmaxcolor(); /* clean up */ getch(); closegraph(); return 0;_修改后:#include #include #include #include int mai
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1