实验二 地图显示和图层控制

实验二  地图显示和图层控制
实验二  地图显示和图层控制

实验二地图显示和图层控制

(3学时)

实验数据:

请到教师课件里下载。实验数据为GIS开发技术A\实验指导\中的“实验数据.rar”实验内容:

1.加载图层及相关操作

2.使用ArcGIS Engine中封装好的对象实现地图的操作

3.使用TocControl控件控制图层

4.使用TextElement绘制标注

5.鹰眼图功能的实现

1.加载图层及相关操作

1)使用属性向MapControl中添加图层

(1)新建一个项目

启动Visual https://www.360docs.net/doc/ea12543737.html,,在【文件】菜单中选择【新建项目】,在“新建项目”对话框中选择项目类型为“Visual C#”,模板为“Windows应用程序”,选择“位置”,点击“确定”

保存该项目。

(2)添加选项卡

在“工具箱”的空白处单击鼠标右键,在弹出的快捷菜单中选择“添加选项卡”,然后在新增选项卡上输入“ESRI控件”作为选项卡标签。

(3)添加ArcGIS Engine控件

①右键点击“ESRI控件”标签,从快捷菜单中选择“选择项”。

②在弹出的“选择工具项”对话框中选择“.NET Framework 组件”选项卡,选中

“AxLicenseControl”、“AxMapControl”、“AxTOCControl”、“AxToolbarControl”和“AxPageLayoutControl”等复选框,单击“确定”按钮,将所选择的控件添加到工具栏中。

③在项目菜单中选择“添加引用”,在弹出的“添加引用”对话框中添加以下常用的类

库引用:

ESRI.ArcGIS.Carto

?ESRI.ArcGIS.Display

?ESRI.ArcGIS.Geometry

?ESRI.ArcGIS.System

?ESRI.ArcGIS.SystemUI

(4)在窗体中嵌入ArcGIS Engine控件

双击工具箱中的“ESRI”标签栏中的AxMapControl和AxLicenseControl控件,将它们都添加到窗体上,并调整好大小和位置。

(5)右键单击MapControl控件,在弹出的对话框中选择【属性】

(6)在弹出的属性页窗体中添加图层

添加图层

(7)运行程序,显示结果

2)使用程序动态地向MapControl中添加图层

①使用绝对路径加载图层(请思考这种加载图层的方式有何局限性?)private void Form1_Load(object sender, EventArgs e)

{

axMapControl1.AddShapeFile("d:\\data\\world\\“, "country.shp");

axMapControl1.AddShapeFile(“d:\\data\\world\\“, "rivers.shp");

axMapControl1.AddShapeFile("d:\\data\\world\\“, "cities.shp");

}

②使用相对路径加载图层(要求同学们重点掌握这种加载图层的方式)private void Form1_Load(object sender, EventArgs e)

{

string CurrentPath = Directory.GetCurrentDirectory();

Directory.SetCurrentDirectory(CurrentPath + "\\..\\..\\..\\..\\data\\world");

string FilePath = Directory.GetCurrentDirectory();

axMapControl1.AddShapeFile(FilePath, "country.shp");

axMapControl1.AddShapeFile(FilePath, "rivers.shp");

axMapControl1.AddShapeFile(FilePath, "cities.shp");

}

3)图层的相关操作

(1)返回图层名称

在列表框中显示出地图中各个图层的图层名,如下图所示:

(2)控制图层的显示

通过复选框控制图层的显示与隐藏,如下图所示:

(3)控制图层的显示顺序

通过拖动列表框中的图层名来控制图层的显示顺序,如下图所示:

2.使用ArcGIS Engine中封装好的对象实现地图的操作

这部分实验请改写实验一中的地图操作代码,用ArcGIS Engine中封装好的对象实现地图的基本操作。

1) 常用的封装好的地图操作工具(Tool)

①ControlsMapZoomInToolClass (放大地图)

②ControlsMapZoomOutToolClass (缩小地图)

③ControlsMapPanToolClass (移动地图)

④ControlsMapZoomPanToolClass (缩放/平移地图)

⑤ControlsMapIdentifyToolClass (点图查询)

⑥ControlsMapMeasureToolClass (量测工具)

2) 常用的封装好的地图操作命令(Command)

①ControlsMapZoomInFixedCommandClass (中心放大地图命令)

②ControlsMapZoomOutFixedCommandClass (中心缩小地图命令)

③ControlsMapFullExtentCommandClass (全图显示命令)

④ControlsMapZoomToLastExtentBackCommandClass (前一视图命令)

⑤ControlsMapZoomToLastExtentForwardCommandClass(后一视图命令)

3)代码示例

①通过ControlsMapZoomInTool实现放大地图操作

ICommand Cmd;

Cmd=new ControlsMapZoomInToolClass();

Cmd.OnCreate(axMapControl1.Object);

axMapControl1.CurrentTool=(ITool)Cmd;

②通过ControlsMapFullExtentCommand实现全图显示

ICommand cmd;

cmd = new ControlsMapFullExtentCommandClass();

cmd.OnCreate(axMapControl1.Object);

cmd.OnClick();

3.使用TocControl控件控制图层

1)绑定TocControl控件

TocControl控件是ArcGIS Engine中用来管理MapControl中图层的控件,它的使用非常简单,只需要把它和对应的MapControl控件进行绑定即可。绑定的两种方法如下:(1)在控件属性中直接绑定

右键单击TocControl控件,在弹出的属性页对话框中设置“Buddy”这一项为要绑定的MapControl控件,如下图所示:

(2)使用代码进行动态绑定

也可以通过代码的方式把TocControl控件和MapControl控件进行绑定,代码如下:axTOCControl1.SetBuddyControl(axMapControl1);

2)使用TocControl控件对图层进行高级操作

(1)修改图层的名称

首先,在Form的Load事件中添加如下的代码:

https://www.360docs.net/doc/ea12543737.html,belEdit = esriTOCControlEdit.esriTOCControlManual;

其次,在TocControl的OnEndLabelEdit事件中添加以下代码即可以实现图层名称的修改:

private void axTOCControl1_OnEndLabelEdit(object sender,

TOCControlEvents_OnEndLabelEditEvent e)

{

if (e.newLabel.Trim() == "")

{

e.canEdit = false;

}

}

(2)拖动图层改变图层的叠放顺序

在TocControl控件的属性页中把“Enable Layer Drag and Drop”复选框选上即可以实现拖动图层改变图层顺序的操作。

(3)在TocControl上给图层添加快捷菜单

这部分实验要求鼠标右键点击TocControl控件的不同部位弹出不同的快捷菜单,并实现相应的功能。

①当鼠标右键单击TocControl控件中的地图图标时,弹出如下的快捷菜单

请同学们通过代码实现快捷菜单中的具体功能。

②当鼠标右键单击TocControl控件中的某个图层时,弹出如下的快捷菜单

请同学们通过代码实现快捷菜单中的具体功能。

4.使用TextElement绘制标注

选择country图层作为标注图层,以国家名进行图层的标注。标注的结果如下图所示:

5.鹰眼图功能的实现

具体要求:

①实现鹰眼图和主地图同时装载一致的数据

②当在主地图中进行缩放、漫游等操作时,同时更新鹰眼图到对应的范围和位置

③在鹰眼图中点击地图或者拖动矩形框时,主地图能够定位到对应的范围和位置

《地图学》实验报告

《地图学》 实 验 报 告 院系: 班级: 姓名: 指导教师: 矿业工程学院·测绘工程教研室 实验一地图投影的认识及应用 一、实验目的 1.了解与掌握常用的地图投影; 2.掌握各类投影经纬线形状、变形规律及应用; 3.针对不同用途的地图投影进行比较分析; 4.熟悉GIS软件中地图投影的应用。 二、实验内容 1、地图投影的认识与判别; 2、熟悉GIS软件中地图投影功能,掌握地图投影定义及变换方法。 三、实验方法与步骤 1、定义投影:

2、地图投影转换:设置方格网;投影变换

四、实验成果 投影名称(中文) 投影名称(英 文) 标准 纬线 中央 经线 经纬网形状变形特点 双标准纬线等角圆锥投影(兰勃特投影) Lambert conformal conic projection 40oN 56oN 10oE 纬线就是以圆锥顶点 为圆心的同心圆弧,经 线为由圆锥顶点向外 放射直线束。 两条标准纬线 无变形,等变 形线与纬线平 行。 双标准纬线等角圆锥投影(兰勃特投影) Lambert conformal conic projection 24oN 46oN 110oE 纬线就是以圆锥顶点 为圆心的同心圆弧,经 线为由圆锥顶点向外 放射直线束。 两条标准纬线 无变形,等变 形线与纬线平 行。 伪圆柱投影(罗宾逊投影) Robinson projection 38oN 38oS 0o纬线为平行直线,中央 经线为直线,其余经线 均为对称于中央经线 的曲线。 赤道为无变形 线,离赤道越 远变形越大。 横轴等积方位投影Azimuthal Equai-Area Projection 0o20oE 中央经线与赤道为直 线,其她经纬线都就是 对称于中央经线与赤 道的曲线, 面积没有变 形,距投影中 心越远,变形 越大。 实验二墨卡托投影的绘制 一、实验目的 1.使学生掌握墨卡托投影的经纬网形状与变形性质。 2.使学生掌握墨卡托投影的绘制方法。 3.理解墨卡托投影上等角航线与大圆航线的绘制方法。 二、实验内容 1.按主比例尺为1:15000万,经纬线网密度为10°,绘制墨卡托投影经纬线网格。 2.转绘大洲轮廓。 3.绘制大圆航线与等角航线。

实验二 动态规划算法棋盘覆盖

实验二动态规划算法棋盘覆盖 最长公共子序列问题 一、实验目的 : 1、熟悉最长公共子序列问题的算法; 2、初步掌握动态规划算法。 二、实验内容 若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序列。 三、实验步骤 1、代码 // ZXL_1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "iostream.h" #include //#include "make2DArray.h" void make2DArray(int** &x , int rows , int cols ) { //创建行指针 x = new int*[rows] ;

//为每一行分配空间 for( int i= 0 ; i

电子地图的制作实验报告

实验一:地理底图基础数据准备 一.实验目的及要求: 1.学习使用Google Earth选择目标地区图形进行矢量化; 3.进一步掌握在arcview、ARCMAP或mapinfo下进行地图配准,数字化,属性编辑等; 4.通过本次实习,使大家掌握用Google Earth进行矢量化,ARCMAP 进行属性编辑等为后期的电子地图设计提供图形数据。 二.实验材料及软件 Google Earth4.2 、getScreen、ArcMap 三.实验步骤: (一)数据准备 1、启动GoogleEarth,在GoogleEarth上定位到自己家乡所在地市州的影像图。 2、在区域内添加地标4-6个(不含四个角点),要求地标在所在区域内分布均匀。记录下地标的地理坐标。也可以导出为kml文件。 3、启动getSrceen,用GetScreen获取家乡的影像。具体方法参见《用GEtScreen与GoogleEarth获取影像的方法.docx》将得到jpg 影像和.map文件(记录四个角点的地理坐标) (二)影像校正 MapInfo配准步骤如下(也可以用mapgis、arcmap、arcview等软件实现配准)用于配准的控制点是影像的四个角点,和(一)2中添加的地

标点。坐标分别见.map文件和.kml文件。均可用记事本打开。1。mapinfo影像校正(配准)步骤 1)打开栅格地图。 文件->打开,选择栅格文件类型。 打开刚才下载的jpg图片。弹出对话框。 选择“配准(Projection)”。出现图像配准对话框。 2)、坐标配准。 点击“+”或“-”号可以缩放对话框中央的地图。

动态规划算法实验

一、实验目的 (2) 二、实验内容 (2) 三、实验步骤 (3) 四.程序调试及运行结果分析 (5) 附录:程序清单(程序过长,可附主要部分) (7)

实验四动态规划算法的应用 一、实验目的 1.掌握动态规划算法的基本思想,包括最优子结构性质和基于表格的最优值计算方法。 2.熟练掌握分阶段的和递推的最优子结构分析方法。 3.学会利用动态规划算法解决实际问题。 二、实验内容 1.问题描述: 题目一:数塔问题 给定一个数塔,其存储形式为如下所示的下三角矩阵。在此数塔中,从顶部出发,在每一节点可以选择向下走还是向右走,一直走到底层。请找出一条路径,使路径上的数值和最大。 输入样例(数塔): 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 输出样例(最大路径和): 59 题目二:最长单调递增子序列问题(课本184页例28) 设有由n个不相同的整数组成的数列,记为:a(1)、a(2)、……、a(n)且a(i)<>a(j) (i<>j) 若存在i1

题目三 0-1背包问题 给定n种物品和一个背包。物品i的重量是wi,其价值为vi,背包的容量为c,。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品只有两个选择:装入或不装入,且不能重复装入。输入数据的第一行分别为:背包的容量c,,物品的个数n。接下来的n 行表示n个物品的重量和价值。输出为最大的总价值。 输入样例: 20 3 11 9 9 10 7 5 输出样例 19 2.数据输入:个人设定,由键盘输入。 3.要求: 1)上述题目任选一做。上机前,完成程序代码的编写 2)独立完成实验及实验报告 三、实验步骤 1.理解算法思想和问题要求; 2.编程实现题目要求; 3.上机输入和调试自己所编的程序; 4.验证分析实验结果; 5.整理出实验报告。

mapgis地图矢量化实验报告心得体会(20200604031440)

mapgis地图矢量化实验报告心得体会 篇一:MAPGIS综合实验报告 MAPGIS综合报告 目录 一、实验目的 (02) 二、实验过程 栅格图像配准 (03) 2.图像二值化 (05) 矢量化 (06) 4.图形编辑 (11) 5.属性编辑 (19) 6.图文互查 (21) 7.对说获得的数据进行利用和分析 (24) 8.自定义制图符号 (31) 9.输出不同比例尺地图 (35) 三、实验总结 (41) MAPGIS实验综合报告 一、实验目的。 MAPGIS是通用的工具型地理信息系统软件,具有强大的空间数据的图形显示、各类地图制图的制作功能,作为个来

数学信息的可视化转换工具,可以讲数字形式的地理信息以 直观的图形形式在屏幕上显示,能自动进行线段跟踪、结点 平差、线段接点裁剪与延伸,多边形拓扑结构的自动生成, 还可以消除图幅之间元的街边误差,为地学信息的综合分析 提供了一个理想的桌面式地理信息系统。所以,在将图矢量 化时应用MAPGIS软件是十分便捷的,同时综合了此软件的 基础操作和方法,能培养我们的自出探究能力和中和分析能 力。对于我们来说这是我们以后能熟练运用MAPGIS的开始,路还很长,我们需要不断的摸索、不断的钻研才能完全掌握 它。下面针对这一次的实验成果中来谈一谈如何运用MAPGIS。 二、实验过程。 栅格图像配准 装载图像 准备工作 使用纸质地图,在扫描仪中扫描为图像 打开MAPGIS“图像处理”——“图像分析”如图所示 如图 在点击图像分析模块的菜单“文件” -> “数据输入”,将其他栅 格图像(mpg,jpg ,tif 等)转换为MapGIS 的栅格图像格式( .msi ),选转换数据类型,点击“添加文

photoshop经典实例1000例

经典的1000条经典的PS实例 用Photoshop手绘头发是个制作难点,由于发丝的随意性与细节处理都很难,一般新手很难制作出满意的头发效果。所以本文将为您推荐一种制作发丝的步骤,很实用,可以在需要的时候参考教程制作出逼真的头发。 最终效果 1、新建一个大小为64 * 64像素的文档,放大到300%,选择铅笔工具,模式为“溶解”,画笔大小为1像素,如下图。 2、在图上胡乱点一些点。

3、选择滤镜 > 模糊 > 高斯模糊,数值为:0.4,效果如下图。 4、选择菜单:编辑 > 定义画笔,名字为“毛发”。接下来选画笔工具,模式为“正常”,在“画笔预设”窗口把间距设为1像素,如下图。 5、再把画笔存为新画笔,名字自定,把刚才那个名字为“毛发”的删除。这样画笔就制成了。

当然绘制头发还有一种不错的方法,就是复制路径。用路径选择工具点你要复制的路径,同时按住Alt键,移动鼠标,就能复制路径了。 现在开始制作头发: 1、选择你喜欢的头发颜色,我这里的颜色是:#69400A,用柔角的大笔触画出头发的大体形状。

2、用滴溅笔型的涂抹工具沿着头发的走势涂抹(涂抹工具模式为:正常,强度为:75%),这样头发的质感就差不多出来了。 3、现在,我们要把头发分成一簇簇地处理。用加深减淡工具把头发的层次分出来。

4、更深入仔细的刻画头发的明暗细节。 5、用减淡工具(2像素,高光,曝光度为:70%),画出几根反光较强的发丝。

6、现在,可以用我们刚才定义的笔刷画头发发丝了。随时根据明暗变化改变颜色来画,有的地方可以用模糊工具稍微处理一下,这样就不会突兀了。 7、稍作调整,换个背景,飞扬的发丝就完成了。

动态规划算法分析实验报告

四、实验结果显示 五、实验总结 通过理解最优子结构的性质和子问题重叠性质,在VC++6.0环境下实现动态规划算法。动态规划算法是由单阶段的决策最优逐步转化为多阶段的决策最优,最后构造一个最优解。经过反复的调试操作,程序运行才得出结果。

六、附录 A #include #include #include #include #define MAX 100 #define n 12 #define k 5 int c[n][n]; void init(int cost[]) { int i,j; for(i=0;i<13;i++) { for(j=0;j<13;j++) { c[i][j]=MAX; } } c[1][2]=9; c[1][3]=7;c[1][4]=3; c[1][5]=2; c[2][6]=4; c[2][7]=2; c[2][8]=1; c[3][6]=2; c[3][7]=7; c[4][8]=11; c[5][7]=11;c[5][8]=8; c[6][9]=6; c[6][10]=5; c[7][9]=4; c[7][10]=3; c[8][10]=5;c[8][11]=6; c[9][12]=4; c[10][12]=2; c[11][12]=5; } void fgraph(int cost[],int path[],int d[]) { int r,j,temp,min; for(j=0;j<=n;j++) cost[j]=0; for(j=n-1;j>=1;j--) { temp=0; min=c[j][temp]+cost[temp]; for(r=0;r<=n;r++) { if(c[j][r]!=MAX)

地图学实验报告

测绘工程专业 地图学实习报告 实习内容:地图投影变换班级:测绘工程2班 学号:631201040205姓名:付博 指导老师:李华蓉 时间: 2014-10-7

地图投影变换 一、地图投影 地图投影是GIS知识体系中重要的组成部分,每个GIS软件都会涉及到这一部分知识,并不是只有MAPGIS软件中才有,MAPGIS 软件中的投影变换相比国外的软件更具有针对性,更符合我们国家的国情,比如标准框等。我这里只是给大家说说我对投影变换的一个理解,讲很多的知识点串起来,不正确的地方,还请大家给予批评指正。 那么什么是投影呢? 我们知道,地球是一个近似于梨型的不规则椭球体,而GIS 软件所处理的都是二维平面上的地物要素的信息。所以首先要考的一个问题,就是如果如何将地球表面上的地物展到平面去。 最简单的一个方法,或者说是最容易想到的一个方法就是将地球表面沿着某个经线剪开,然后展成平面,即采用这种物理的方法来实现。可采用物理的方法将地球表面展开成地图平面必然产生裂隙或褶皱,大家可以想象一下,如果把一个足球展成平面的,会是什么结果。所以这种方法存在着很大的误差和变形,是不行的。 那么我们就可以采用地图投影的方法,就是建立地球表面上的点与地图平面上点之间的一一对应关系,利用数学法则把地球表面上的经纬线网表示到平面上,这样就可以很好的控制变形和

误差。凡是地理信息系统就必然要考虑到地图投影,地图投影的使用保证了空间信息在地域上的联系和完整性,在各类地理信息系统的建立过程中,选择适当的地图投影系统是首先要考虑的问题。 所以一句话,投影:就是建立地球表面上点(Q,λ)和平面上的点(x,y)之间的函数关系式的过程。 在MAPGIS中的“投影变换”的定义如下:将当前地图投影坐标转换为另一种投影坐标,它包括坐标系的转换、不同投影系之间的变换以及同一投影系下不同坐标的变换等多种变换。 二、实验目的: 1、理解投影变换的原理及其应用。 2、熟悉使用ARCMAP做地图投影变换的方法。 3、增加对地图学的地图投影变换方便知识的理解。 三、实验内容: 将老师发的矢量化地图用ARCMAP软件进行投影变换,具体包括边界线的绘制、各省份直辖市的颜色填充等,最后将绘制的地图进行投影变换。 四、实验步骤 1、启动ARCMAP

Photoshop实例简单步骤

Lesson1 ●选择:选区可为圆,方,一行,一列,选择模式可以+、-、交叉,选区 可以移动,在单一选区情况下,鼠标放在选区中就可以移动(可以看到鼠标变形)。 ●填充:油漆桶和渐变工具,对选区上前景色(最好新建一层来做)。 ●层:图象由许多层组成,每层上面可以有不同的元素,这样便于对一幅 图象中的各个元素分别操作。 ●移动:移动一层中图象的位置。 Eg1 球,阴影,倒影. 1、新建一画布(400*400象素), 注意选择”RGB模式”(绘制的图中可以出现彩 色,如果是”灰度模式”则图中只有黑白色),用渐变色填充(上蓝下黑,线 形填充)形成背景 2、新建一个图层,选出一正圆区域(按住shift),用径向填充(白灰)画一球。 3、选取图层中刚才画出的小球(按住ctrl鼠标点图层),新建一图层后在刚才的 选区中用黑色填充(前景色变黑,用油漆桶填充). 4、在图层中用自由变换功能拖动图案,使其出现倒影效果,在选取的情况下降低 透明度. Eg2 圆环,羽化,亮度调整 1、新建一画布(400*400象素),注意选择”灰度模式”(绘制的图中只有黑白 色,如果是”RGB模式”则图中可以出现彩色),使用白色背景。 2、新建一图层,选出一正圆形选区用灰色填充 3、在在同一图层上选取一圆,比刚才圆小,放在大圆正中,删去小圆中选种部 分,显示出一环型. 4、选中该环型图层中的圆环,使用选择菜单中的羽化命令,目的是接下来的颜 色过度平滑. 5、向斜上方移动选取,露出部分圆环边缘,后进行反选,对反选区域执行图象 菜单--调整命令里面的亮度和对比度调整,把亮度调暗. 6、选中该环型图层中的圆环,再次使用选择菜单中的羽化命令

算法分析与设计实验二:动态规划法

题目:用动态规划法实现求两序列的最长公共子序列。 程序代码 #include #include //memset需要用到这个库 #include using namespace std; int const MaxLen = 50; class LCS { public: LCS(int nx, int ny, char *x, char *y) //对数据成员m、n、a、b、c、s初始化{ m = nx; //对m和n赋值 n = ny; a = new char[m + 2]; //考虑下标为0的元素和字符串结束标记 b = new char[n + 2]; memset(a, 0, sizeof(a)); memset(b, 0, sizeof(b)); for(int i = 0; i < nx + 2; i++) //将x和y中的字符写入一维数组a和b中a[i + 1] = x[i]; for(int i = 0; i < ny + 2; i++) b[i + 1] = y[i]; c = new int[MaxLen][MaxLen]; //MaxLen为某个常量值 s = new int[MaxLen][MaxLen]; memset(c, 0, sizeof(c)); //对二维数组c和s中元素进行初始化 memset(s, 0, sizeof(s)); } int LCSLength(); //求最优解值(最长公共子序列长度) void CLCS() //构造最优解(最长公共子序列) { CLCS(m, n); //调用私有成员函数CLCS(int,int) } private: void CLCS(int i, int j); int (*c)[MaxLen], (*s)[MaxLen]; int m, n;

南京邮电大学算法设计实验报告——动态规划法

实验报告 (2009/2010学年第一学期) 课程名称算法分析与设计A 实验名称动态规划法 实验时间2009 年11 月20 日指导单位计算机学院软件工程系 指导教师张怡婷 学生姓名丁力琪班级学号B07030907 学院(系) 计算机学院专业软件工程

实验报告 实验名称动态规划法指导教师张怡婷实验类型验证实验学时2×2实验时间2009-11-20一、实验目的和任务 目的:加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题。 任务:用动态规划法实现求两序列的最长公共子序列,其比较结果可用于基因比较、文章比较等多个领域。 要求:掌握动态规划法的思想,及动态规划法在实际中的应用;分析最长公共子序列的问题特征,选择算法策略并设计具体算法,编程实现两输入序列的比较,并输出它们的最长公共子序列。 二、实验环境(实验设备) 硬件:计算机 软件:Visual C++

三、实验原理及内容(包括操作过程、结果分析等) 1、最长公共子序列(LCS)问题是:给定两个字符序列X={x1,x2,……,x m}和Y={y1,y2,……,y n},要求找出X和Y的一个最长公共子序列。 例如:X={a,b,c,b,d,a,b},Y={b,d,c,a,b,a}。它们的最长公共子序列LSC={b,c,d,a}。 通过“穷举法”列出所有X的所有子序列,检查其是否为Y的子序列并记录最长公共子序列并记录最长公共子序列的长度这种方法,求解时间为指数级别的,因此不可取。 2、分析LCS问题特征可知,如果Z={z1,z2,……,z k}为它们的最长公共子序列,则它们一定具有以下性质: (1)若x m=y n,则z k=x m=y n,且Z k-1是X m-1和Y n-1的最长公共子序列; (2)若x m≠y n且x m≠z k,则Z是X m-1和Y的最长公共子序列; (3)若x m≠y n且z k≠y n,则Z是X和Y的最长公共子序列。 这样就将求X和Y的最长公共子序列问题,分解为求解较小规模的问题: 若x m=y m,则进一步分解为求解两个(前缀)子字符序列X m-1和Y n-1的最长公共子序列问题; 如果x m≠y n,则原问题转化为求解两个子问题,即找出X m-1和Y的最长公共子序列与找出X 和Y n-1的最长公共子序列,取两者中较长者作为X和Y的最长公共子序列。 由此可见,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列,具有最优子结构性质。 3、令c[i][j]保存字符序列X i={x1,x2,……,x i}和Y j={y1,y2,……,y j}的最长公共子序列的长度,由上述分析可得如下递推式: 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0且x i=y j max{c[i][j-1],c[i-1][j]} i,j>0且x i≠y j 由此可见,最长公共子序列的求解具有重叠子问题性质,如果采用递归算法实现,会得到一个指数时间算法,因此需要采用动态规划法自底向上求解,并保存子问题的解,这样可以避免重复计算子问题,在多项式时间内完成计算。 4、为了能由最优解值进一步得到最优解(即最长公共子序列),还需要一个二维数组s[][],数组中的元素s[i][j]记录c[i][j]的值是由三个子问题c[i-1][j-1]+1,c[i][j-1]和c[i-1][j]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

地图矢量化实验报告示范文本

地图矢量化实验报告示范 文本 After completing the work or task, record the overall process and results, including the overall situation, progress and achievements, and summarize the existing problems and future corresponding strategies. 某某管理中心 XX年XX月

地图矢量化实验报告示范文本 使用指引:此报告资料应用在完成工作或任务后,对整体过程以及结果进行记录,内容包含整体情况,进度和所取得的的成果,并总结存在的问题,未来的对应策略与解决方案。,文档经过下载可进行自定义修改,请根据实际需求进行调整与使用。 实验课内容:地图的矢量化 开课实验室:基础实验大楼北90201 学院:土木工程学院 年级专业班:20xx级测绘工程一班 学生姓名:陈涛 学生学号:631301040116 开课时间:20xx年xx月xx号 一、实验目的及要求 了解从纸质地形图转化为计算机数字地形图数据的基 本过程,掌握数字图制图软件ArcGIS 中基本的地图编辑处 理方法,巩固地图基础知识,根据所学的知识对扫描地图 进行屏幕跟踪矢量化。

二、地图矢量化的基础知识 地理信息系统的基本功能之一就是数据采集,数据采集也是一个完整的GIS 应具备的基本功能。地理数据分为空间数据与属性数据两部分,数据采集也分为空间数据采集和属性数据采集。空间数据的采集方法很多,根据数据的来源可分为地图数字化,遥感数据获取和以GPS 为数据源的数据采集等。其中,地图数字化是最基本的数据采集方法,它是指把传统的纸质或者其他材料上的地图(模拟信号)转换为计算机可识别的图形数据(数字信号)的过程,以便进一步在计算机进行存贮,分析和输出。 扫描数字化包括以下步骤: (1) 获取扫描图像数据 利用扫描仪对纸质地图进行扫描,并根据实际情况设置分辨率、颜色种类、对比度等参数,从而获得背景图像,格式可以为bmp、jpg、tif 等。如果扫描的图像效果

PS经典实例教程

用Photoshop从无到有绘制一种仿真的水纹效果。 新建500*500像素的RGB模式文件。快捷键D把前景色设置为黑,背景色设置为白。[滤镜]―[渲染]―[云彩],[滤镜]―[模糊]―[径向模糊],数量23,模糊方法―旋转,品质―最好,[滤镜]―[模糊]―[高斯模糊]5.5,[滤镜]―[素描]―[基底凸现],细节12,平滑度10,光照方向―底,[滤镜]―[素描]―[铬黄]细节7,平滑度4,[滤镜]―[扭曲]―[旋转扭曲],角度120,[滤镜]―[扭曲]―[水波],数量12%,起伏5,按快捷键CTRL+U或者[图像]―[调整]―[色相/饱和度]命令,在弹出的对话框中选择着色,色相调整为205,饱和度为55。得到最终结果。 利用PS画笔模拟在水雾玻璃上写字 打开雨滴玻璃素材,进行色相/饱和度调整,色相10,饱和度35。执行图象--调整-去色。图象-图象大小,将背景图象改为600*450.拉入汽车素材图,改模式为叠加。将背景素材图进行滤镜--模糊--高斯模糊5.5。后设置画笔 在所有图层上新建图层“字体”,用黑色画笔写出字体。用15px的画笔画出墨迹滴落的感觉。在所有图层上新建图层编辑填充白色,改模式为柔光,不透明度55%。、最后我们将字体图层的不透明度改为85%。 Photoshop制作华丽的花纹黄金字 新建一1280×1024像素的文件。设置前景色#6a000c,背景色#111111。选择渐变工具,选择前景色到背景渐变,径向渐变。后从文档中心拖动到其中一个角

落来创建渐变。 用文字工具,创建文字,颜色#f9df78。复制文字图层两次,第二个副本的填充值改为0。双击文字图层应用如下图层样式。斜面和浮雕:样式“描边浮雕”,深度250 ,光泽等高线选择环形—双,勾选消除锯齿,高光模式为“线性光”,阴影模式颜色#96794b。理:选择素材图案,可先存下图的纹理素材,打开后定义为图案。

运筹学实验_动态规划

实验二用MATLAB解决动态规划问题 问题:有一部货车每天沿着公路给四个售货店卸下6箱货物,如果各零售店出售该货物所得利润如下表所示,试求在各零售店卸下几箱货物,能使获得总利润最 解: 1)将问题按售货店分为四个阶段 2)设s k表示为分配给第k个售货店到第n个工厂的货物数, x k设为决策变量,表示为分配给第k个售货店的货物数, 状态转移方程为s k+1=s k-x k。 P k(x k)表示为x k箱货物分到第k个售货店所得的盈利值。 f k(s k)表示为s k箱货物分配给第k个售货店到第n个售货店的最大盈利值。 3)递推关系式: f k(s k)=max[ P k(x k)+ f k+1(s k-x k) ] k=4,3,2,1 边界条件:f5(s5)=0 4)从最后一个阶段开始向前逆推计算。 第四阶段: 设将s4箱货物(s4=0,1,2,3,4,5,6)全部分配给4售货店时,最大盈利值为: f4(s4)=max[P4(x4)] 其中x4=s4=0,1,2,3,4,5,6 x4*表示使得f4(s4)为最大值时的最优决策。 第三阶段:

设将s3箱货物(s3=0,1,2,3,4,5,6)分配给3售货店与4售货店时,对每一个s3值,都有一种最优分配方案,使得最大盈利值为:f3(s3)=max[ P3(x3)+ f4(s3-x3) ] ,x3= 第二阶段: 设将s2箱货物(s2=0,1,2,3,4,5,6)分配给2售货店、3售货店与4售货店时,则最大盈利值为:f2(s2)=max[ P2(x2)+ f3(s2-x2) ] 第一阶段: 设将s2箱货物(s1=0,1,2,3,4,5,6)分配给1售货店、2售货店、3售货店与4售货店时,则最大盈利值为:f1(s1)=max[ P1(x1)+ f2(s1-x1) ] 按计算表格的顺序反推,可知最优分配方案有6个: 1) x1*=1,x2*=1,x3*=3,x4*=1。 2) x1*=1,x2*=2,x3*=2,x4*=1。 3) x1*=1,x2*=3,x3*=1,x4*=1。

PS图层练习

实例1:奥运五环 知识点:创建、删除图层,交叉选区的选取,调整图层顺序。 目标:加深对图层层次感的认识。 效果图: 步骤: 1、新建大小为400*200px、分辨率为150dpi、RGB模式、背景为白色、文件名“奥运五环”的文 件。 2、绘制蓝色圆:新建图层,命名为“蓝环”。选择【窗口】|【色板】命令,打开【色板】调板, 选择“纯蓝”色块,将前景色设置为纯蓝色。选择【椭圆选框工具】,按住【Shift】键,在“蓝环”图层画出正圆选区,填充纯蓝色,并保留选区状态。如图 3、绘制蓝色圆环:将“蓝环”图层拖到【图层】调板下方的【新建图层】按钮上,产生“蓝环副 本”图层,并在圆选区中填充纯蓝色以外的任何颜色。按【Ctrl+T】键,使“蓝环副本”图层中的正圆处于变换状态。再按住【Alt+Shift】键,用鼠标拖动四个顶角关键点中的任一点,将正圆成比例缩小,回车确认,但仍保留选区状态。拖动“蓝环副本”图层至调板下方的【删除图层】按钮上将其删除。回到“蓝环”图层,利用原“蓝环副本”留下的选区,按【Delete】键 Ctrl+D】取消选区。

4、复制其它四个圆环:按住【Ctrl+Alt】键,拖动已创建好的蓝色圆环,按如图位置,利用快捷方式复制出其它四个圆环。 5、为四个圆环上色:依次为新建的四个图层命名为“黑环”、“红环”、“黄环”、“绿环”,再将前景色依次设置为黑、红、黄、绿,然后选择相应图层,并选择工具箱中的【魔棒】工具将圆环选取,分别填充为黑、红、黄、绿。

6、制作环环相扣的效果:以打断黄色环为例说明制作过程。选择“蓝环”图层,选择【魔棒工具】将圆环选取,再选择“黄环”图层,在选项栏上选中“与选区交叉”选项。在蓝、黄环交叉处单击,将蓝、黄环交叉部分选取,如图所示: 7、选择【矩形选框工具】,在选项栏中选中“从选区减去”选项,将黄环两个选区中下边的选区减去,只留下上边的交叉选区。 8、制作蓝、黄环相扣的效果:选择菜单【图层】|【新建图层】|【通过剪切的图层】命令,系统自动将该选区部分剪切至一个名为“图层1”的图层中,但该图层会自动生成至“黄环”图层的上方,因此需将它拖至“蓝环”图层的下方,才能达到蓝、黄二环相扣的效果,如图:

电子技术基础实验报告

电子技术实验报告 学号: 222014321092015 姓名: 刘 娟 专业: 教育技术学 实验三 单级交流放大器(二) 一、 实验目的 1. 深入理解放大器的工作原理。 2. 学习测量输入电阻、输出电阻及最大不失真输出电压幅值的方法。 3. 观察电路参数对失真的影响. 4. 学习毫伏表、示波器及信号发生器的使用方法。 二. 实验设备: 1、实验台 2、示波器 3、数字万用表 三、预习要求 1、熟悉单管放大电路。 2、了解饱和失真、截止失真和固有失真的形成及波形。 3、掌握消除失真方法。 四、实验内容及步骤 ● 实验前校准示波器,检查信号源。 ● 按图3-1接线。 图3-1 1、测量电压参数,计算输入电阻和输出电阻。 ● 调整RP2,使V C =Ec/2(取6~7伏),测试V B 、V E 、V b1的值,填入表3-1中。 表3-1 ● 输入端接入f=1KHz 、V i =20mV 的正弦信号。 ● 分别测出电阻R 1两端对地信号电压V i 及V i ′按下式计算出输入电阻R i : ● 测出负载电阻R L 开路时的输 出电压V ∞ ,和接入R L (2K )时的输出电压V 0 , 然后按下式计算出输出电阻R 0; 将测量数据及实验结果填入表3-2中。 2 中。 ● 输入信号不变,用示波器观察正常工作时输出电压V o 的波形并描画下来。 ● 逐渐减小R P2的阻值,观察输出电压的变化,在输出电压波形出现明显失真时,把失

真的波形描画下来,并说明是哪种失真。( 如果R P2=0Ω后,仍不出现失真,可以加大输入信号V i ,或将R b1由100K Ω改为10K Ω,直到出现明显失真波形。) ● 逐渐增大R P2的阻值,观察输出电压的变化,在输出电压波形出现明显失真时,把失 真波形描画下来,并说明是哪种失真。如果R P2=1M 后,仍不出现失真,可以加大输入信号V i ,直到出现明显失真波形。 表 3-3 ● 调节R P2使输出电压 波形不失 真且幅值 为最大(这 时的电压放大倍数最大),测量此时的静态工作点V c 、V B 、V b1和V O 。 表 3-4 五、实验报告 1、分析输入电阻和输出电阻的测试方法。 按照电路图连接好电路后,调节RP2,使Vc 的值在6-7V 之间,此时使用万用表。接入输入信号1khz 20mv 后,用示波器测试Vi 与Vi ’,记录数据。用公式计算出输入电阻的值。在接入负载RL 和不接入负载时分别用示波器测试Vo 的值,记录数据,用公式计算出输出电阻的值。 2、讨论静态工作点对放大器输出波形的影响。 静态工作点过低,波形会出现截止失真,即负半轴出现失真;静态工作点过高,波形会出现饱和失真,即正半轴出现失真。 实验四 负反馈放大电路 一、 实验目的 1、熟悉负反馈放大电路性能指标的测试方法。 2、通过实验加深理解负反馈对放大电路性能的影响。 二、实验设备 1、实验台 2、示波器 3、数字万用表 三、预习要求 1、熟悉单管放大电路,掌握不失真放大电路的调整方法。 2、熟悉两级阻容耦合放大电路静态工作点的调整方法。 3、了解负反馈对放大电路性能的影响。 四、实验电路

最新Photoshop综合实例教案

综合实训 任务一艺术写真 一、提出任务 1.任务目标 人物照片是我们在进行平面设计时经常会使用到的素材,很多原始照片效果往往不尽人意,需要进一步加工处理。随着生活质量的提高,照片处理也逐渐成为寻常百姓的生活需要,例如在影楼工作中,就会经常需要为客户制作婚纱照片,或个人写真。 2. 解决的问题 本任务应客户要求制作一幅艺术写真照片,将一张人物素颜处理成具有明星效果的照片。 3. 知识要点 Photoshop的滤镜功能 色彩调节、调整图层 图层混合模式 创建图层剪贴蒙版 二、教学目标 1. 知识目标 Photoshop的滤镜功能 2. 能力目标 色彩调节、调整图层 3. 情感目标 应客户要求制作一幅艺术写真照片 三、教学分析与准备 1. 教学重点 色彩调节、调整图层 2.教学难点 图层混合模式 3. 教学方法 任务驱动学习和协作学习、探究学习相结合 4. 课时安排 2课时 5. 教学环境 多媒体网络教室

打开照片原图,将背景层复制生成背景副本,对背景副本使用【滤镜】>【模糊】>【特殊模糊】菜单命令,调出【特殊模糊】对话框,使用默认设置,单击【好】按钮。 将背景副本层再复制生成背景副本2,使用【滤镜】【模糊】>【高斯模糊】菜单命令,半径4像素,单击【好】按钮,再把背景副本2的图层混合模式设置为【滤色】模 单击图层调板下部的【创建调整图层】按钮,选择【色饱和度】命令,在对话框中调整数值,根据需要观察图像色彩变化。

这时调整图层对下面所有图层都起作用,只需要作用于背景副本2,使用【图层】>【创建剪贴蒙版】菜单命令,从图层调板中可以看到变化,同时图像效果也产生变化。

实验二 动态规划算法—李明明

实验二动态规划算法(2学时) 一、实验目的与要求 1、熟悉最长公共子序列问题的算法; 2、初步掌握动态规划算法; 二、实验题 若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X 和Y的公共子序列。 给定2个序列X={x1,x2,…,xm}和Y={y1,y2,…,yn},找出X和Y的最长公共子序列。 三、实验提示 include "stdlib.h" #include "string.h" void LCSLength(char *x ,char *y,int m,int n, int **c, int **b) { int i ,j; for (i = 1; i <= m; i++) c[i][0] = 0; for (i = 1; i <= n; i++) c[0][i] = 0; for (i = 1; i <= m; i++) for (j = 1; j <= n; j++) { if (x[i]==y[j]) { c[i][j]=c[i-1][j-1]+1; b[i][j]=1; } else if (c[i-1][j]>=c[i][j-1]) { c[i][j]=c[i-1][j]; b[i][j]=2; } else { c[i][j]=c[i][j-1]; b[i][j]=3; } } } void LCS(int i ,int j, char *x ,int **b) { if (i ==0 || j==0) return;

数字测图实验报告

本篇实验报告共包括四个实验,分别是: ◆闭合导线外业测量 ◆碎部测量 ◆数据采集 ◆内业数据处理 小组成员: 实验目的: 了解数字测图数据采集的作业过程,掌握用全站仪进行大比例尺地面数字测图数据采集的作业 方法。 实验一:闭合导线外业测量 (一)实验目的:(1)掌握闭合导线的布设方法。 (2)掌握闭合导线的外业观测方法。 (二)闭合导线设计: 本实习根据两个起算点坐标,在江苏师范大学教育与技术学院周围布设4个控制点,要求各控制点之间要通视,利用全站仪测出未知控制点的坐标。 点号连接为T5——T01——1——2——3——4 (三)控制点测量步骤: 1用测回法测量角度

先将经纬仪安置好,进行对中、整平,并在A、B两点树立标杆或测钎作为照准标志,然后即可进行测角。一测回的操作程序如下: (1)盘左位置,照准左边目标A,对水平度盘置数,略大于0°, 将读数a左记入手簿; (2)顺时针方向旋转照准部,照准右边目标B,读取水平度盘读数 b左,记入手簿。由此算得上半测回的角值:β左=b左-a 左 (3)盘右位置,先照准右边目标B,读取水平度盘读数b右,记入 手簿; (4)逆时针方向转动照准部,照准左边目标A,读取水平度盘读数 a右,记入手簿。由此算得下半测回的角值:β右=b右-a 右 2 利用全站仪测量距离 (1)量仪器高、棱镜高并输入全站仪。 (2)距离测量照准目标棱镜中心,按测距键,距离测量开始,测距完成时显示斜距、平距、高差。

3 控制测量结果 根据已知点GIS03、GIS04坐标数据,并综合以上测量成果,进行平差处理,得出平差后各控制点坐标: 点号X坐标Y坐标Z坐标 1 3785997.451 516493.224 39.517 2 3785997.331 516428.015 39.513 3 3785917.521 516430.957 39.530 4 3785923.208 516551.930 39.181 实验二:碎部测量 一测量步骤 1建立控制点和碎部点文件,在控制点假设全站仪,棱镜放到与其邻近的控制点,在全站仪上输入测站坐标(采用调用的方式),然后调用后视点的坐标,瞄准棱镜,输入仪器高和棱镜高,进行检核和定向。一切满足精度后,进行碎部测量; 2全站仪测量或者放样需要有两个已知点。一个是测站点(架设仪器的)一个是后视点(架设棱镜杆的)。在全站仪中输入测站点坐标和后视点坐标,然后操作全站仪镜头,对准棱镜杆底部的杆尖处(如果由于现场障碍实在看不到可以选择对准冷镜头上方的顶尖处)。然后确定。刚才这个设置过程是给全站仪建立坐标系的过程。 3后视点定向,是为全站仪提供方位角的,(方位角:一条直线与北

算法实验 动态规划上机

实验3动态规划上机 [实验目的] 1.掌握动态规划的基本思想和效率分析方法; 2.掌握使用动态规划算法的基本步骤; 3.学会利用动态规划解决实际问题。 [实验要求] 按以下实验内容完成题目,并把编译、运行过程中出现的问题以及解决方法填入实验报告中,按时上交。 [实验学时] 2学时。 [实验内容] 一、实验内容 利用动态规划算法编程求解多段图问题,要求读入多段图,考虑多段图的排序方式,求源点到汇点的最小成本路径。并请对自己的程序进行复杂性分析。 二、算法描述 先输入点的个数和路径数以及每段路径的起点、长度、终点,再计算所有路径的值大小,比较输出后最小值。 三、源程序 #define N 2147483647 #include #include void main() { int i,pointnum,j; cout<<"输入图中点的个数:"<>pointnum; int **array; //array数组描述多段图 int *array2; //array2记录距离起点的最小路径 int *array3; //array3记录上一点编号 array=new int*[pointnum]; array2=new int[pointnum+1]; array3=new int[pointnum+1]; for(i=0;i

} array2[pointnum]=N; array3[pointnum]=N; for(i=0;i>pathnum; int a,k; cout<<"依次输入图中每段路径"<>i; cin>>a; cin>>j; array[i][j]=a; if(array2[j]>(a+array2[i])) { array3[j]=i; array2[j]=a+array2[i]; } // cout<

相关文档
最新文档