自动显示技术实验报告 (2).docx
《自动显示技术实验报告 (2).docx》由会员分享,可在线阅读,更多相关《自动显示技术实验报告 (2).docx(31页珍藏版)》请在冰点文库上搜索。
《自动显示技术》实验报告
班级:
姓名:
学 号:
第22页共31页
上机实验一、计算机显示知识
一、上机实验目的
1.观察计算机显示系统构成,认识彩色显示的相关硬件和软件。
2.了解计算机图形显示过程并学习VGA显示模式设置知识。
3.了解计算机显示器特性和使用,认识计算机图形显示的控制与编程技术知识。
二、实验设备及软件
1.计算机系统 1套;
2.测试和应用软件 若干;
3.高倍放大镜 1个;
4.课程多媒体软件 1套;
三、上机实验内容
1.认识计算机显示系统构成结构
A.观察计算机的基本外部构成;
答:
经观察我实验上机用的计算机是:
联想G460笔记本电脑。
基本外围构成:
主机、光电鼠标、86键键盘、14英尺LCD液晶显示屏、1个
RJ45(网线接口),1个15针VGA(视频接口),3个USB2.0((数据接口),触摸
板、指点杆、耳机输出接口、麦克风输入接口、电源接口、4合1读卡器、DVD光驱。
B.观察VGA显示器的基本特性;
答:
VGA采用模拟接口与显示器相连,极大地提高了VGA的色彩显示能力。
VGA的绝大部分寄存器除了少数几个外都是可读写的,给编程提供了很大的方便。
VGA将其占用存储器的时间减到了最小,使得CPU能快速读写显示存储器。
VGA将16色模式的分辨率提高到了640×480,同时VGA新提供了一种具有
320×200分辨率、256种颜色的图形模式。
C.观察VGA显示卡及显示器的显示信号接口;
答:
据观察测试、我实验上机的笔记本电脑的VGA显示卡是一块被制作在主板上的集成显卡,型号为:
NvidiaGeForce310M
显示器的显示信号接口如下图:
2.认识VGA显示模式
A.认识计算机的字符模式及其基本特点;
答:
(1)计算机的字符模式:
字符模式也称文本模式,在字符模式下,最基本的操作单元为字符,一屏所能显示字符的行数和列数及字符属性的表示方法即构成了一种具体的字符显示模式。
VGA标准的字符显示模式为80列、25行、16色。
(2)计算机的字符模式基本特点:
字符模式具有极快的显示速度,但它不能显示图形。
B.认识计算机图形模式的种类、表示及其特点和主要特性参数;
答:
(1)计算机的图形模式由各种分辨率、色彩模式组合而成、一般表示为:
水平像素数×垂直像素数×色彩模式。
(2)VGA的图形模式分为三类:
CGA、EGA兼容图形模式;标准VGA图形模式;VGA
扩展图形模式。
后两种模式统称为VGA图形模式。
(3)VGA上采用了一种间接色彩表示方式:
用一个索引值来确定各个象素点的颜色,而不是直接用红绿蓝三基色的亮度值来确定每个象素点的颜色,然后用一个色彩查找表来确定每个索引值所对应的真实颜色值。
图形模式
所需
显存容量
实际最低配置
显存容量
类型
640×480×16色
150K
256K
普通模式
800×600×16色
235K
256K
普通模式
1024×768×16色
384K
512K
普通模式
1280×1024×16色
640K
1M
高级模式
1600×1200×16色
938K
1M
高级模式
2048×2048×16色
2048K
2M
高级模式
320×200×256色
63K
256K
普通模式
640×400×256色
250K
256K
普通模式
640×480×256色
300K
512K
普通模式
800×600×256色
469K
512K
普通模式
1024×768×256色
768K
1M
普通模式
1280×1024×256色
1280K
2M
高级模式
1600×1200×256色
1875K
2M
高级模式
2048×2048×256色
4096K
4M
高级模式
320×200×32K色
125K
256K
普通模式
512×480×32K色
480K
256K
普通模式
640×480×32K色
600K
1M
普通模式
800×600×32K色
938K
1M
普通模式
1024×768×32K色
1536K
2M
高级模式
1280×1024×32K色
2560K
4M
高级模式
1600×1200×32K色
3750K
4M
高级模式
320×200×64K色
125K
256K
普通模式
512×480×64K色
480K
256K
普通模式
640×480×64K色
600K
1M
普通模式
800×600×64K色
938K
1M
普通模式
1024×768×64K色
1536K
2M
高级模式
1280×1024×64K色
2560K
4M
高级模式
1600×1200×64K色
3750K
4M
高级模式
320×200×16M色
200K
256K
普通模式
640×480×16M色
960K
1M
普通模式
800×600×16M色
1407K
2M
高级模式
1024×768×16M色
2304K
4M
高级模式
1280×1024×16M色
3840K
8M
高级模式
1600×1200×16M色
5625K
8M
高级模式
C.学习设置计算机图形模式的方法及相关要点;
答:
VGA的显示存储器容量并不能任意配置,它通常必须为256K乘2的n次方,即只能为如下几种容量之一:
256K、512K、1MB、2MB、4MB、8MB、16MB、32MB、64MB、128MB等
3.了解计算机显示系统特性指标及其参数
A.观察并了解Windows下VGA显示卡视频地址空间特性;
B.使用测试软件测试计算机显示特性及其指标;
C.使用应用软件观察显示模式的特性
D.使用课程多媒体教程学习计算机显示部件知识
四、基本实验问题:
1、计算机DOS下的显示模式是多少?
答:
字符模式:
80列,25行。
2、当前计算机Windows下的图形显示模式为多少?
答:
1366*768,32(位真彩),刷新率:
60Hz
3、VGA彩色显示器屏幕上象素点的构成方式是怎样的?
答:
VGA彩色显示器的一帧画面是有光栅扫描中一系列明暗不同的点(像
素点)组成图形、而CRT图形显示是以屏幕左上角为屏幕坐标原点(0,0)直接将整个屏幕分成m行,每行分成n个点,每个点称为一个象素。
4、当前计算机VGA显示系统的基本参数是多少?
5、Windows下VGA显示卡视频地址空间是多少?
6、Windows下VGA图形显示模式调节类型有哪些?
如何调节和设定?
答:
VGA调节模式由普通模式和高级模式组成。
图形模式
所需
显存容量
实际最低配置
显存容量
类型
640×480×16色
150K
256K
普通模式
800×600×16色
235K
256K
普通模式
1024×768×16色
384K
512K
普通模式
1280×1024×16色
640K
1M
高级模式
1600×1200×16色
938K
1M
高级模式
2048×2048×16色
2048K
2M
高级模式
320×200×256色
63K
256K
普通模式
640×400×256色
250K
256K
普通模式
640×480×256色
300K
512K
普通模式
800×600×256色
469K
512K
普通模式
1024×768×256色
768K
1M
普通模式
1280×1024×256色
1280K
2M
高级模式
1600×1200×256色
1875K
2M
高级模式
2048×2048×256色
4096K
4M
高级模式
320×200×32K色
125K
256K
普通模式
512×480×32K色
480K
256K
普通模式
640×480×32K色
600K
1M
普通模式
800×600×32K色
938K
1M
普通模式
1024×768×32K色
1536K
2M
高级模式
1280×1024×32K色
2560K
4M
高级模式
1600×1200×32K色
3750K
4M
高级模式
320×200×64K色
125K
256K
普通模式
512×480×64K色
480K
256K
普通模式
640×480×64K色
600K
1M
普通模式
800×600×64K色
938K
1M
普通模式
1024×768×64K色
1536K
2M
高级模式
1280×1024×64K色
2560K
4M
高级模式
1600×1200×64K色
3750K
4M
高级模式
320×200×16M色
200K
256K
普通模式
640×480×16M色
960K
1M
普通模式
800×600×16M色
1407K
2M
高级模式
1024×768×16M色
2304K
4M
高级模式
1280×1024×16M色
3840K
8M
高级模式
1600×1200×16M色
5625K
8M
高级模式
调节和设定在桌面单击右键,选择“显示设置”或“属性”进行调节和设置。
如图所示
上机实验二 C语言图形基础知识
一、上机实验目的
1.认识C语言程序中的图形参数和有关图形显示的基础知识;
2.学习C语言各种图形函数和图形命令及其使用。
3.学习并运行图形显示例程,掌握C语言图形编程基本常识。
二、实验设备及软件
1.计算机系统 1套;
2.C语言教程软件 1套;
3.C语言编程软件 1套
4.课程多媒体软件 1套;
三、上机实验内容
1.学习教程中有关图形的基本知识
图形模式初始化设置、颜色代码调用、图形显示基本功能等;
2.认识并掌握C语言图形函数及其使用
各种图形的C语言函数,如点、直线、矩形、圆、扇形、椭圆及多边形等;图形函数的基本表示、含义以及基本应用;
答:
各种图形的C语言函数,如点画点函数voidfarputpixel(intx,inty,
intcolor);
直线、voidfarline(intx0,inty0,intx1,inty1);画一条从点(x0,y0)到(x1,y1)的直线。
Voidfarlineto(intx,inty);画一作从现行游标到点(x,
y)的直线。
voidfarlinerel(intdx,intdy);画一条从现行游标(x,y)到按相对增量确定的点(x+dx,y+dy)的直线。
矩形、voidfarbar(intx1,inty1,intx2,inty2);
圆、扇形voidfarpieslice(intx,inty,intstangle,intendangle,intradius);画一个以(x,y)为圆心,radius为半径,stangle为起始角度,
endangle为终止角度的扇形,再按规定方式填充。
椭圆及多边形等voidfarfloodfill(intx,inty,intborder);
其中:
x,y为封闭图形内的任意一点。
border为边界的颜色,也就是封闭图形轮廓的颜色。
图形函数的基本表示、含义以及
基本应用:
voidfarclearviewport(void);清除现行图形窗口的内容。
voidfarouttext(charfar*textstring);该函数输出字符串指针textstring
所指的文本在现行位置。
3.初步认识C语言图形函数的编程与运行
在C语言环境下,运行图形程序示例,观察显示结果,分析程序结构和含义,学习
C语言图形函数的编程应用;
4.修改相关程序内容,观察运行结果,总结经验和结论分析。
四、上机实验报告
根据实验内容,在计算机上操作和观察、学习,并围绕上述内容写出实验结论及观察报告,写出相应的运行程序实例和运行结果,以及修改内容和相应运行结果的变化,分析其结论原因。
(不少于3个有代表性程序及运行、修改的结论)。
1.画圆
#include#include#include#includeintmain(void)
{/*requestautodetection*/
intgdriver=DETECT,gmode,errorcode;intmidx,midy;
intradius=100;圆的半径
/*initializegraphicsandlocalvariables*/initgraph(&gdriver,&gmode,"");
/*readresultofinitialization*/errorcode=graphresult();
if(errorcode!
=grOk) /*anerroroccurred*/
{ printf("Graphicserror:
%s\n",grapherrormsg(errorcode));printf("Pressanykeytohalt:
");
getch();
exit
(1);/*terminatewithanerrorcode*/}midx=getmaxx()/2;圆的位置在x轴的1/2处midy=getmaxy()/2;圆的位置在y轴的1/2处
setcolor(getmaxcolor());
/*drawthecircle*/circle(midx,midy,radius);
/*cleanup*/getch();closegraph();return0;}
修改之后的程序#include#include#include#includeintmain(void)
{/*requestautodetection*/
intgdriver=DETECT,gmode,errorcode;
intmidx,midy;
intradius=10;圆的半径
/*initializegraphicsandlocalvariables*/initgraph(&gdriver,&gmode,"");
/*readresultofinitialization*/errorcode=graphresult();
if(errorcode!
=grOk) /*anerroroccurred*/
{ printf("Graphicserror:
%s\n",grapherrormsg(errorcode));printf("Pressanykeytohalt:
");
getch();
exit
(1);/*terminatewithanerrorcode*/}midx=getmaxx()/3;圆的位置在x轴的1/3处midy=getmaxy()/3;圆的位置在y轴的1/3处
setcolor(getmaxcolor());
/*drawthecircle*/circle(midx,midy,radius);
/*cleanup*/getch();closegraph();return0;}
修改intradius=10midx=getmaxx()/3;midy=getmaxy()/3;
此时圆变为半径为10位于屏幕左上角圆点x,y轴1/3处
2.扇形填充
#include#include#include#include
intmain(void)
{
/*requestautodetection*/
intgdriver=DETECT,gmode,errorcode;intmidx,midy;
intstangle=45,endangle=135,radius=100;
/*initializegraphicsandlocalvariables*/initgraph(&gdriver,&gmode,"");
/*readresultofinitialization*/errorcode=graphresult();
if(errorcode!
=grOk) /*anerroroccurred*/
{
printf("Graphicserror:
%s\n",grapherrormsg(errorcode));printf("Pressanykeytohalt:
");
getch();
exit
(1);/*terminatewithanerrorcode*/
}
midx=getmaxx()/2;midy=getmaxy()/2;
/*setfillstyleanddrawapieslice*/setfillstyle(EMPTY_FILL,getmaxcolor());pieslice(midx,midy,stangle,endangle,radius);
/*cleanup*/getch();closegraph();return0;
}
运行结果:
修改后:
#include#include#include#include
intmain(void)
{
/*requestautodetection*/
intgdriver=DETECT,gmode,errorcode;intmidx,midy;
intstangle=225,endangle=315,radius=100;
/*initializegraphicsandlocalvariables*/initgraph(&gdriver,&gmode,"");
/*readresultofinitialization*/
errorcode=graphresult();
if(errorcode!
=grOk) /*anerroroccurred*/
{
printf("Graphicserror:
%s\n",grapherrormsg(errorcode));printf("Pressanykeytohalt:
");
getch();
exit
(1);/*terminatewithanerrorcode*/
}
midx=getmaxx()/2;midy=getmaxy()/2;
/*setfillstyleanddrawapieslice*/setfillstyle(LINE_FILL,getmaxcolor());pieslice(midx,midy,stangle,endangle,radius);
/*cleanup*/getch();closegraph();return0;
}
运行结果:
分析:
将扇形的始边度数改为225度intstangle=225,终边度数改为315度endangle=315,可将扇形关于横轴对称,将填充类型改为LINE_FILL可得到线条填充setfillstyle(LINE_FILL,
getmaxcolor());如图。
3.给正方形内加填充方式#include#include
#include#include
intmain(void)
{
/*requestautodetection*/
intgdriver=DETECT,gmode,errorcode;
intmidx,midy,i;
/*initializegraphicsandlocalvariables*/initgraph(&gdriver,&gmode,"");
/*readresultofinitialization*/errorcode=graphresult();
if(errorcode!
=grOk) /*anerroroccurred*/
{
printf("Graphicserror:
%s\n",grapherrormsg(errorcode));printf("Pressanykeytohalt:
");
getch();
exit
(1);/*terminatewithanerrorcode*/
}
midx=getmaxx()/2;midy=getmaxy()/2;
/*loopthroughthefillpatterns*/for(i=SOLID_FILL;i{
/*setthefillstyle*/setfillstyle(i,getmaxcolor());
/*drawthebar*/
bar(midx-50,midy