计算机网络试验指导书-苏州大学
- 格式:doc
- 大小:827.50 KB
- 文档页数:46
数据通信与计算机网络实验指导书实验一:制作双绞线一、实验原理1.1物理层概述物理层是七层结构中的第一层,物理层的功能就是实现在传输介质上传输各种数据的比特流。
物理层并不是物理设备和物理媒体,它定义了建立、维护和拆除物理链路的规范和协议,同时定义了物理层接口通信的标准,包括机械的、电气的、功能的和规程的特性。
机械特性定义了线缆接口的形状、引线数目及如何排列等。
电气的特性说明哪根线上出现的电压应为什么范围。
功能的特性说明某根线上的某一电平的电压代表何种意义。
规程的特性则说明对于不同的功能各种可能时间的出现顺序。
物理介质提供数据传输的物理通道,连接各种网络设备。
我们将传输介质分为有线传输介质和无线传输介质两大类。
有线介质包括同轴电缆、双绞线、光纤;无线介质则有卫星、微波、红外线等。
1.2 双绞线概述双绞线的最大传输距离为100m。
如果要加大传输距离,在两段双绞线之间可安装中继器,最多可安装4个中继器。
如安装4个中继器连接5个网段,则最大传输距离可达500m。
EIA/TIA的布线标准中规定了两种双绞线的线序568A与568B。
标准568A:绿白—1,绿—2,橙白—3,蓝—4,蓝白—5,橙—6,棕白—7,棕—8标准568B:橙白—1,橙—2,绿白—3,蓝—4,蓝白—5,绿—6,棕白—7,棕—8四.实验步骤:1.先用双绞线剥线器将双绞线的外皮除去3厘米左右。
2.根据568B的标准来排列各色线顺序(白橙,橙,白绿,蓝,白蓝,绿,白棕,棕)。
需要特别注意的是,绿色条线必须跨越蓝色对线。
这里最容易犯错的地方就是将白绿线与绿线相邻放在一起,这样会造成串扰,使传输效率降低。
3.把线整齐,将裸露出的双绞线用专用钳剪下,只剩约15mm的长度,并铰齐线头,4.将双绞线的每一根线依序放入RJ45接头的引脚内,第一只引脚内应该放白橙色的线,其余类推。
5.确定双绞线的每根线已经放置正确之后,就可以用RJ45压线钳压接RJ45接头。
课程编号:08110512计算机网络基础实验指导执笔:况颐实验一网络连接器的制作与测试一、实验类型验证性实验二、实验目的RJ-45网络连接器是网络物理层重要的设备之一,网络上的计算机和网络设备之间许多都是通过该连接器进行连接,通过本次实验,要求:1.熟知RJ-45网络连接器的线序2.掌握用5类线制作RJ-45网络连接器的规范方法3.掌握对RJ-45网络连接器的测试方法4.掌握通过RJ-45网络连接器连接计算机和网络设备(网络集线器或网络交换机)的方法三、实验设备和器材1.计算机2.网络适配器3.网络交换机或集线器4.网络连接器测试器5.电缆剥线压线钳6.5类网线(双绞线)7.水晶头四、方法步骤1.线序在不超过100M的距离内连接计算机和网络,一般都使用RJ-45网络连接器。
由于该连接器连接的设备不同,网络在水晶头中排列的顺序(线序)也不同。
本实验制作的是连接计算机与交换机之间的连接器(T568B标准直通型),其线序如下:两端线序一样,从左至右线序是:白橙,橙,白绿,蓝,白蓝,绿,白棕,棕。
两端线序完全一直的线称为直通线(Straight Cable),用于连接集线器(或交换机)与计算机;两端线序不一致的线称为交叉线(Crossover Cable),用于连接交换机与交换机、计算机与计算机。
各有不同的线序,有关这些线序的排列情况请查阅相关资料。
2.网线处理①剪断网线:用电缆剥线压线钳的剪线刀口剪取适当长约3M的网线,注意要将线头剪整齐,使剪断口与线的长度方向垂直。
②除去护套:将线头放入剥线刀口,使刀口与线端的距离约为1.5CM,刀口略切进护套,转动线钳慢慢旋转一周,拿开线钳,轻折护套并将其除去。
这样,护套内的双绞线就暴露出来了。
为了更好地进行下一步操作,最好用剪线刀口剪断护套与绞线之间的抗拉丝。
③电缆排序:仔细观察护套内8根电缆的排列和颜色,它们分成4对相互绞在一起,成为4对双绞线。
其颜色分别是白橙、橙,白绿、绿,白蓝、蓝,白棕、棕。
计算机网络实验指导书湖南工业大学计算机与通信学院网络工程系目录实验一 802.3协议分析和以太网 (3)一、实验目的 (3)二、预备知识 (3)三、实验环境 (4)四、实验步骤 (5)五、实验报告内容 (6)实验二 IP层协议分析 (7)一、实验目的 (7)二、实验环境 (7)三、实验步骤 (7)四、实验报告内容 (8)实验三 TCP协议分析 (9)一、实验目的及任务 (9)二、实验环境 (9)三、实验步骤 (9)四、实验报告内容 (10)实验四 HTTP和DNS分析 (11)一、实验目的及任务 (11)二、实验环境 (11)三、实验步骤 (11)四、实验报告内容 (12)实验一802.3协议分析和以太网一、实验目的1.分析802.3协议2.熟悉以太网帧的格式3.熟悉ARP报文的格式二、预备知识要深入理解网络协议,需要仔细观察协议实体之间交换的报文序列。
为探究协议操作细节,可使协议实体执行某些动作,观察这些动作及其影响。
这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。
观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(packet sniffer)。
顾名思义,一个分组嗅探器捕获(嗅探)计算机发送和接收的报文。
一般情况下,分组嗅探器将存储和显示出被捕获报文的各协议头部字段内容。
图1为一个分组嗅探器的结构。
图1右边是计算机上正常运行的协议(在这里是因特网协议)和应用程序(如:Web浏览器和ftp客户端)。
分组嗅探器(虚线框中的部分)是附加计算机普通软件上的,主要有两部分组成。
分组捕获库接收计算机发送和接收的每一个链路层帧的拷贝。
高层协议(如:HTTP、FTP、TCP、UDP、DNS、IP等)交换的报文都被封装在链路层帧(Frame)中,并沿着物理介质(如以太网的电缆)传输。
图1假设所使用的物理媒体是以太网,上层协议的报文最终封装在以太网帧中。
分组嗅探器的第二个组成部分是分析器。
计算机网络实验指导书计算机科学与应用前言《计算机网络》课程是计算机科学与技术专业的重要专业课程之一。
随着计算机网络技术的迅速发展和在当今信息社会中的广泛应用,给《计算机网络》课程的教学提出了新的更高的要求。
由于计算机网络是一门实践性较强的技术,课堂教学应该与实践环节紧密结合。
将《计算机网络》课程建设成国内一流的课程,是近期《计算机网络》课程努力的方向。
我校自1986 年开始为本科生同学开设了《计算机网络》课程,当时由于设备紧张,基本没有实践环节。
1996 年,在校领导的大力支持下,我们筹建了《计算机网络》的教学实验环境。
这个实验环境为同学提供了基本的网络操作和功能,在当时达到了国内高等院校和科研机构的计算机网络基本水平,这个实验环境为我院的《计算机网络》课程的教学作出了巨大的贡献。
2003 年,我们又重新改建了实验环境。
目前,本实验室拥有40 台联想公司的个人计算机和五台联想、方正服务器。
现在的网络实验环境不逊于国内各知名学府,在这样良好的硬件环境下,我们就在软件上也力争达到国先进水平。
所以,我们重新编写了实验指导书,调整了实验安排,加大了实践力度。
希望同学们能够充分利用实验条件,认真完成实验,从实验中得到应有的锻炼和培养。
希望同学们在使用本实验指导书及进行实验的过程中,能够帮助我们不断地发现问题,并提出建议,使《计算机网络》成为具有国内一流水平的课程。
本学期授课教师为杨松波,此外张学东、武传胜、吴建胜等教师也给予了热情的支持和帮助。
实验要求计算机网络是现代信息社会最重要的基础设施之一。
在过去十几年里得到了迅速的发展和应用。
《计算机网络》课程实验的目的是为了使学生在课程学习的同时,通过在一个计算机网络环境中的实际操作,对现代计算机网络的基本功能有一个初步的了解;通过实现一个传输层协议,掌握计算机网络通信协议的基本实现技术;通过链路层、网络层和传输层传输过程的分析,加深学生对网络基本原理和技术的理解,进而为今后逐步再涉及到难度较大的设计型和研究型实验打下扎实的基础。
单元一局域网组建任务一局域网认识一、实验目的1、初步掌握计算机网络的定义,计算机网络的功能及计算机网络的分类;2、掌握按地理围分类的四大计算机网络,即局域网、广域网、城域网和互联网。
重点了解局域网的结构及网络系统的设置;3、掌握计算机网络的五种拓扑结构,即总线型、星型、环形、树型和网状型。
重点掌握总线型、星型。
二、实验容1、到学院网络中心、教学机房或者其他相关单位了解计算机网络结构,并画出拓扑结构图,分析属于什么网络结构;2、观察每台计算机是如进行网络通信的,了解计算机网络中的网络设备;3、了解每台计算机上使用的网络标识、网络协议和网卡的配置。
三、实验原理1、计算机网络的定义。
计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
2、计算机网络的分类。
计算机网络类型的划分标准各种各样,根据网络的覆盖围划分为局域网、城域网、广域网、国际互联网;按网络的拓扑结构划分为总线型网络、星型网络、环型网络、树状网络、混合型网络;按传输介质划分为有线网、无线网;按网络的使用性质划分为公用网、专用网,当然还有一些其他的分类标准。
四、实验步骤组织学生三至五人为一小组,分别到学院网络中心、教学机房或者其他相关单位,完成本次实验的容,并写出实验报告。
LAB1:观察计算机网络的组成本实验是以计算机教学机房为例,观察计算机网络的组成,并画出网络拓扑结构图(学生可以根据现有的条件,到相关的计算机网络实验实训基地观察)。
1、记录联网计算机的数量、配置、使用的操作系统、网络拓扑结构等数据;2、了解教学机房设备是如互联的(根据现有条件,了解相应网络设备);3、认识并记录网络中使用的其他硬件设备的名称、用途及连接的法;4、画出网络拓扑结构图;5、根据网络拓扑结构图分析网络使用的结构。
LAB2:观察计算机网络的参数设置经机房管理人员可后,打开计算机进入系统,查看计算机的网络参数,并记录主要的网络配置参数。
《》实验报告专业年级姓名学号指导老师实验室使用日期苏州大学计算机科学与技术学院统一印制二零零二年八月苏州大学计算机科学与技术学院计算机图形学实验指导书(MFC和OpenGL版)计算机图形学课题组目录实验一OpenGL程序设计实验二二维基本图元的生成实验三二维图元的填充实验四二维图形的几何变换实验五二维裁剪实验六自由曲线前言一、实验目的1、培养学生动手编程解决实际问题的能力。
2 训练学生分析问题和调试程序的能力。
3 锻炼学生撰写科技实验论文的能力。
二、实验总体要求1 问题分析充分地分析和理解问题本身,弄清要求做什么,用什么算法。
2 程序设计(1) 根据所采用的算法,设计数据结构,画出流程图并编程。
(2) 最后准备调试程序的数据及测试方案。
3 上机调试(1)对程序进行编译,纠正程序中可能出现的语法错误。
(2) 调试前,先运行一遍程序看看究竟将会发生什么。
(3) 如果情况很糟,根据事先设计的测试方案并结合现场情况进行错误跟踪,包括单步调试、设置观察窗输出中间变量值等手段。
4 整理实习报告三、实验报告1 实习内容:采用的算法名称2 问题描述:包括目标、任务、条件约束描述等。
3 设计:数据结构设计和核心算法设计。
主要功能模块的输入,处理(算法框架)和输出。
4 测试范例:测试结果的分析讨论,测试过程中遇到的主要问题及所采用的解决措施。
5 心得:包括程序的改进设想,经验和体会。
6 程序清单:源程序,其中包括变量说明及详细的注释。
实验1 OpenGL 程序设计实验目的巩固计算机图形学和C语言程序设计的相关知识,初步了解通用图形软件包,了解常见的图元的生成方法,学会图形显示设备的初始化及其交互式图形生成的过程,锻炼程序调试的技巧。
实验学时2学时实验类型学习型实验实验要求初步了解OpenGL 程序设计结构;了解OpenGL 的基本数据类型、核心函数及辅助函数的使用。
四、实验内容1、综述这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL 提供了完备的支持。
目录实验1 实验环境熟悉 (1)实验2 网络协议仿真软件的熟悉 (2)实验3 编辑并发送LLC帧 (3)实验4 编辑并发送MAC帧 (4)实验5 (5)实验6 网际协议IP (6)实验7 Internet控制报文协议icmp (8)实验8 用户数据报协议UDP (10)实验9 传输控制协议TCP (11)实验一:实验环境的熟悉实验目的:1.掌握实验系统的软硬件组成2.熟悉实验系统软件界面实验设备:N台计算机,中软吉大的协议仿真软件实验步骤:1.由教师引领,观察实验室硬件布局、网线连接、主要设备等相关情况;2.打开中软吉大的协议仿真软件,了解软件的组成模块(包括仿真编辑器和协议分析器);2.了解实验中要用到的3种网络拓扑结构图;3.了解每种拓扑图中计算机的连接方法和ip地址的设置方法;主服务器IP设为172.16.1.100;其它机器设为172.16.1.*mask:255.255.255.0Gateway:172.16.1.1Dns:172.16.1.1004.打开中软吉大网络协议仿真教学系统(通用版)课件,熟悉9个实验的名称,有关实验的说明。
实验二:网络协议仿真软件的熟悉实验目的:1.熟悉仿真编辑器界面的操作2.熟悉协议分析器界面的操作实验设备:N台计算机,中软吉大的协议仿真软件实验步骤:打开中软吉大的协议仿真软件,浏览界面,尝试使用界面上的工具按钮。
(1)打开仿真编辑器。
该系统的初始界面分为5个部分:多帧编辑区、单帧编辑区、协议模型区、地址本和十六进制显示区a.多帧编辑区b.单帧编辑区c.协议模型区d.地址本e.十六进制显示区(2)应用实例a.编辑MAC层b.编辑IP层c.编辑TCP层(3)协议分析器使用简介a.会话分析b.协议解析(4)应用实例a.在单帧编辑区中编辑一个ICMP帧b.在协议分析器捕获该帧并分析实验三: 编辑并发送LLC帧实验目的:1.掌握以太网报文格式;2.掌握LLC帧报文格式;3.掌握仿真编辑器和协议分析器的使用方法;实验设备:集线器,N台计算机,N条双绞线,协议仿真系统实验步骤:1.将服务器和工作站用双绞线和HUB连通并加载协议仿真模块2.将主机A和B作为一组,主机A启动仿真编辑器,并编写一个LLC 帧。
计算机网络实验指导华北电力大学2019年7月目录第一章实验概述 (1)第二章仿真编辑器使用说明 (2)第三章协议分析器使用说明 (10)第四章计算机网络实验—基本实验 (14)实验 1 数据链路层:以太网帧的构成 (14)实验 2 网络层:地址转换协议ARP (17)实验 3 网络层:网际协议IP (21)实验 4 网络层:Internet控制报文协议ICMP (27)实验 5 传输层:用户数据报协议UDP (33)实验 6 传输层:传输控制协议TCP (37)实验7 网络地址转换NAT (42)实验8 静态路由与路由信息协议RIP (45)实验9 网络综合实验 (51)附录三种网络结构图 (52)第一章实验概述【实验环境】每个实验均要求以下实验环境:1.服务器一台:装有HTTP、FTP、TELNET、MAIL、DHCP、DNS等服务。
2.中心设备一台。
3.组控设备若干。
4.实验机:运行网络协议仿真教学系统通用版程序。
5.Visual Studio 2003(C++,C#)。
【实验内容】《计算机网络实验指导》根据教学内容将实验划分为九个基本实验。
希望学生能够通过一系列的实验对TCP/IP协议有一个更深刻的理解。
实验1 数据链路层:以太网帧的构成:该实验类型为验证性实验,要求学生在了解网络协议仿真教学系统平台的基础上,学会使用仿真编辑器编辑以太网帧,学会两种不同MAC帧格式,认真观察和分析以太网帧的MAC首部。
实验教学效果达到理解MAC地址、MAC广播地址的作用。
实验2 网络层:地址转换协议 ARP:该实验类型为验证性实验,要求学生在理解IP地址与MAC地址对应关系的基础上,掌握ARP协议的报文格式、作用与工作原理。
实验教学效果达到利用ARP协议的工作原理,设计类似ARP协议程序,学会在局域网中查找MAC地址。
实验3 网络层:网际协议IP:该实验类型为验证性实验,要求学生学会分类IP地址,掌握IP数据报的格式、长度以及各字段的功能,掌握路由转发的原理。
实验指导书《计算机网络》目录实验一简单局域网组网 (1)一、实验目的 (1)二、实验环境 (1)三、实验内容 (1)四、实验步骤 (2)1.制作RJ-45双绞线 (2)2.用测通仪测试双绞线 (4)3.组建并配置局域网 (4)4.测试局域网连通性 (6)五、相关知识 (7)1. ping命令用法简介 (7)六、注意事项 (8)实验二使用网络模拟器PacketTracer (9)一、实验目的 (9)二、实验环境 (9)三、实验内容 (9)四、实验步骤 (9)1.安装网络模拟器 (9)2.使用PacketTracer模拟器 (9)3.观察与IP网络接口的各种网络硬件 (13)4. ping和traceroute实验 (13)五、相关知识 (17)六、注意事项 (17)实验三集线器、交换机、路由器与ARP (18)一、实验目的 (18)二、实验环境 (18)三、实验内容 (18)四、实验步骤 (18)1. 在PacketTracer模拟器中配置网络拓扑 (18)2. 根据要求完成实验环境设置 (19)3. 观察并分析实验现象 (19)五、相关知识 (20)六、注意事项 (22)实验四VLAN与三层交换机 (23)一、实验目的 (23)二、实验环境 (23)三、实验内容 (23)四、实验步骤 (23)1. 配置网络拓扑 (23)2. 配置交换机VLAN (24)3. 分析交换机转发报文过程 (24)4. 配置三层交换机 (24)4. 分析三层交换机转发过程 (25)五、相关知识 (26)实验五子网划分与路由器配置 (27)一、实验目的 (27)二、实验环境 (27)三、实验内容 (27)四、实验步骤 (28)1. 规划网络拓扑 (28)3. 划分IP地址块 (28)4. 配置路由器及主机接口属性 (29)5. 配置路由器的接口IP地址 (29)6. 配置静态路由 (31)7. 测试主机之间的连通性 (33)8. 配置动态路由协议RIP (34)9. 查看路由器交换RIP报文的过程 (36)10. 改进网络规划设计 (38)五、相关知识 (39)六、注意事项 (39)实验六OSPF (40)一、实验目的 (40)二、实验环境 (40)三、实验内容 (40)四、实验步骤 (40)1. 规划网络并配置网络拓扑 (40)2. 为路由器配置OSPF (41)3. 修改OSPF链路开销 (41)3. 分析OSPF报文 (42)五、相关知识 (42)实验七使用Wireshark分析网络协议 (43)一、实验目的 (43)二、验环境 (43)三、实验内容 (43)四、实验步骤 (44)1. Wireshark的使用 (44)2. 分析Web应用中的协议交互 (48)五、相关知识 (50)1. Wireshark相关知识 (50)2. 相关命令简介 (51)六、注意事项 (54)实验八用Wireshark分析TCP协议特性 (55)一、实验目的 (55)二、实验环境 (55)三、实验内容 (55)四、实验步骤 (55)1. 俘获本机与远程服务器的TCP踪迹文件 (55)2. 熟悉TCP踪迹文件 (55)3. 分析TCP序列/应答编号和流量控制 (56)4. 分析应用层内容 (57)5. 分析TCP拥塞控制 (58)五、相关知识 (58)六、注意事项 (59)实验九无线局域网 (60)一、实验目的 (60)二、实验环境 (60)三、实验内容 (60)四、实验步骤 (60)1. 构建虚拟Internet路由器及互联网Web服务器 (61)2. 部署实验网络并对网络设备进行配置 (62)3. 验证无线连接并对实验网络进行分析 (63)五、相关知识 (64)六、注意事项 (64)实验十DNS服务管理及邮件服务管理 (65)一、实验目的 (65)二、实验环境 (65)三、实验内容 (65)四、实验步骤 (65)1. 配置DNS服务器 (65)2. 测试DNS服务器 (70)3. 添加邮件服务器所需资源记录 (72)4. 安装MDaemon邮件服务器软件 (73)5. 配置MDaemon邮件服务器 (74)6. 测试MDaemon邮件服务器 (76)五、思考与实践 (81)实验十一配置DHCP服务器(Server2003版) (82)一、实验目的 (82)二、实验环境 (82)四、实验步骤 (82)1. 配置DHCP服务器 (82)2. 启动DHCP服务 (85)3. 测试DHCP服务器 (85)五、思考与实践 (87)实验十二DHCP中继代理 (88)一、实验目的 (88)二、实验环境 (88)三、实验内容 (88)四、实验步骤 (88)1. 配置网络拓扑 (88)2. 配置DNS服务 (88)3. DHCP中继代理 (90)4. 测试并分析DHCP交互过程 (90)五、相关知识 (90)实验十三利用Java开发网络应用程序 (92)一、实验目的 (92)二、实验环境 (92)三、实验内容 (92)四、实验步骤 (92)1. 安装Java编程环境 (92)2. 在Java集成开发环境下调试程序 (93)3. 编写UDP Ping程序 (96)4. 编写Web代理服务器程序 (100)五、相关知识 (107)六、注意事项 (108)实验十四TCP文件传输的设计与实现 (109)一、实验目的 (109)二、实验环境 (109)四、实验步骤 (109)1. Code::Blocks开发环境简介 (109)2. Windows Socket API入门 (114)3. 编译运行文件传输服务器端和客户端源代码 (116)4. 程序改进 (123)五、注意事项 (124)1. 实验报告要求 (124)2. 预习与参考 (124)实验十五简单Web服务器的设计与实现 (124)一、实验目的 (124)二、实验环境 (124)三、实验内容 (125)四、实验步骤 (125)1. 编译运行Web服务器源代码 (125)2. 程序改进 (126)五、注意事项 (127)1. 实验报告要求 (127)2. 预习与参考 (127)实验十六访问控制列表 (128)一、实验目的 (128)二、实验条件 (128)三、实验内容 (128)四、实验步骤 (128)1. 配置网络拓扑 (128)2. 标准ACL配置 (129)3. 扩展ACL配置 (129)五、相关知识 (130)实验一 简单局域网组网建议学时:1 一、实验目的1)掌握RJ-45双绞线的制作方法。
《》实验报告专业年级姓名学号指导老师实验室使用日期苏州大学计算机科学与技术学院统一印制二零零二年八月苏州大学计算机科学与技术学院计算机图形学实验指导书(MFC和OpenGL版)计算机图形学课题组目录实验一OpenGL程序设计实验二二维基本图元的生成实验三二维图元的填充实验四二维图形的几何变换实验五二维裁剪实验六自由曲线前言一、实验目的1、培养学生动手编程解决实际问题的能力。
2 训练学生分析问题和调试程序的能力。
3 锻炼学生撰写科技实验论文的能力。
二、实验总体要求1 问题分析充分地分析和理解问题本身,弄清要求做什么,用什么算法。
2 程序设计(1) 根据所采用的算法,设计数据结构,画出流程图并编程。
(2) 最后准备调试程序的数据及测试方案。
3 上机调试(1)对程序进行编译,纠正程序中可能出现的语法错误。
(2) 调试前,先运行一遍程序看看究竟将会发生什么。
(3) 如果情况很糟,根据事先设计的测试方案并结合现场情况进行错误跟踪,包括单步调试、设置观察窗输出中间变量值等手段。
4 整理实习报告三、实验报告1 实习内容:采用的算法名称2 问题描述:包括目标、任务、条件约束描述等。
3 设计:数据结构设计和核心算法设计。
主要功能模块的输入,处理(算法框架)和输出。
4 测试范例:测试结果的分析讨论,测试过程中遇到的主要问题及所采用的解决措施。
5 心得:包括程序的改进设想,经验和体会。
6 程序清单:源程序,其中包括变量说明及详细的注释。
实验1 OpenGL 程序设计实验目的巩固计算机图形学和C语言程序设计的相关知识,初步了解通用图形软件包,了解常见的图元的生成方法,学会图形显示设备的初始化及其交互式图形生成的过程,锻炼程序调试的技巧。
实验学时2学时实验类型学习型实验实验要求初步了解OpenGL 程序设计结构;了解OpenGL 的基本数据类型、核心函数及辅助函数的使用。
四、实验内容1、综述这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL 提供了完备的支持。
OpenGL 提供了一系列的辅助函数,用于简化Windows 操作系统的窗口操作,使我们能把注意力集中到图形编程上,这次试验的程序就采用这些辅助函数。
2、实验步骤在VC 中新建项目新建一个项目。
选择菜单File 中的New 选项,弹出一个分页的对话框,选中页Projects 中的Win32 Console Application 项,然后填入你自己的Project name,如Test,回车即可。
VC 为你创建一个工作区(WorkSpace),你的项目Test 就放在这个工作区里。
为项目添加文件为了使用OpenGL,我们需要在项目中加入三个相关的Lib 文件:glu32.lib、glaux.lib、opengl32.lib,这三个文件位于c:\program files\Microsoft Visual Studio\vc98\lib 目录中。
选中菜单Project->Add To Project->Files 项(或用鼠标右键),把这三个文件加入项目,在FileView 中会有显示。
这三个文件请务必加入,否则编译时会出错。
或者将这三个文件名添加到Project->Setting->Link->Object/library Modules 即可。
点击工具条中New Text File 按钮,新建一个文本文件,存盘为Test.c 作为你的源程序文件,再把它加入到项目中,然后就可以开始编程了。
#include <windows.h>#include <GL/gl.h>#include <GL/glu.h>#include <GL/glaux.h>//初始化OpenGL 场景void myinit (void){glClearColor (0.0, 0.0, 0.0, 0.0); //将背景置成黑色glShadeModel (GL_FLAT); //设置明暗处理}//用户的绘图过程void CALLBACK display(void){glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清除缓存glBegin(GL_LINES); //开始画一根白线glColor3f (1.0f, 1.0f, 1.0f);//设置颜色为白色//设置第一根线的两个端点,请注意:OpenGL 坐标系的原点是在屏幕左下角glVertex2f(10.0f, 50.0f);glVertex2f(110.0f, 50.0f);glColor3f (1.0f, 0.0f, 0.0f);//设置颜色为红色//设置第二根线的两个端点glVertex2f(110.0f, 50.0f);glVertex2f(110.0f, 150.0f);glEnd(); //画线结束glFlush (); //绘图结束}//主过程:// 初始化Windows 的窗口界面;并初始化OpenGL 场景,绘图int main(int argc, char** argv){auxInitDisplayMode (AUX_RGB);//初始化显示模式,采用RGB 彩色系统。
auxInitPosition (0, 0, 400, 150); //初始化窗口位置、大小auxInitWindow ("Display Lists"); //初始化窗口,设置标题myinit ();auxMainLoop(display);//循环运行display 过程,display 由用户编写return(0);}2).OpenGL基础库设置•更改头文件(在视图类的头文件中引用gl\gl.h gl\glu.h)•连接OpenGL库(工程——设置——General/Use MFC in a Library, Link/OpenGL32.lib glu32.lib)3).添加变量和函数•添加变量并初始化•CClientDC * MyDC;•视图类的构造函数中MyDC=NULL;•添加消息映射函数•OnCreate()•OnSize()•OnDestroy()4).在PreCreateWindow函数中将窗口的客户区设置为OpenGL能够支持的风格cs.style=WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS; 5).在OnCreate函数中•定义像素存储格式•PIXELFORMATDESCRIPTOR结构•创建绘图上下文RC(Rendering Context)并使之当前化•wglCreateContext()函数创建绘图上下文RC。
PIXELFORMATDESCRIPTOR pfd={ sizeof(PIXELFORMATDESCRIPTOR), // pfd的大小1, //结构的版本号PFD_DRAW_TO_WINDOW| //支持windowPFD_SUPPORT_OPENGL| //支持OpenGLPFD_DOUBLEBUFFER, //双缓存PFD_TYPE_RGBA, //RGBA颜色模式24, //24位颜色深度缓存0,0,0,0,0,0, //color bits ignored0, //no alpha buffer0, //shift bit ignored0, //不使用累积缓存0,0,0,0, //accum bits ignored32, //32位z缓冲0, //不使用模板缓存0, //no auxiliary bufferPFD_MAIN_PLANE, //选择主层面0, //保留0,0,0 //layer masks ignored};MyDC=new CClientDC(this);//设置像素格式int pixelFormat=ChoosePixelFormat(MyDC->GetSafeHdc(),&pfd); SetPixelFormat(MyDC->GetSafeDC(),pixelFormat,&pfd);m_hRC=wglCreateContext(MyDC->m_hDC);wglMakeCurrent(MyDC->GetSafeHdc(),m_hRC);6).在OnSize函数中设置视场和视口If(cy>0){glMatrixMode(GL_PROJECTION);glLoadIdentity();glFrustum(-1.0,1.0,-1.0*cy/cx,1.0*cy/cx,5.0,9.0);glViewport(0,0,cx,cy);}7).在OnDestroy函数:在OnDestroy成员中需要释放OnCreate成员中RC所占用的资源HGLRC m_hRC;m_hRC=wglGetCurrentContext();wglMakeCurrent(NULL,NULL);wglDeleteContext(m_hRC);MyDC->DeleteDC();8)在OnEraseBKgnd中将原来的返回语句换成返回TRUE;9).在OnDraw中根据当前的视点、视距、观看方向等参数,设置合适的OpenGL视景体属性,使用户能够看到预期的场景外观glClearColor(1.0f,1.0f,0.0f,1.0f);//背景为黄色glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)glMatrixMode(GL_MODELVIEW);glLoadIdentity();glTranslatef(0.0f,0.0f,-6.0f);glBegin(GL_LINES); //OpenGL绘制直线命令glColor3f(1.0,0.0,0.0); //设置当前颜色为红色glVertex2f(0,0);glVertex2f(1,1);glColor3f(0.0,1.0,0.0); //设置当前颜色为绿色glVertex2f(0.2f,0.0f);//glVertex2f(1.2f,1.0f);glEnd();glFinish();SwapBuffers(wglGetCurrentDC());3、程序说明每个函数的具体含义在程序注释中已作了叙述,不再多说。
OpenGL的函数在格式上很有特点,它以gl为前缀,并且函数名的最后一个字母指出所用的数据类型,如:glColor3f(),字母f指明要使用浮点数。
字母前的数字指明参数个数或指明二维还是三维,如:glVertex2f()是要设置二维的点。