Segment,Path,Ring和Polyline对象
Segment几何对象
Segment对象是一个有起点和终点的“线“,也就是说Segement只有两个点,至于两点之间的线是直的,
还是曲的,需要其余的参数定义。所以Segment是由起点,终点和参数三个方面决定的。Segment有4个
子类,它的4个子类如下图:
Path几何对象
Path是连续的Segment的集合,除了路径的第一个Segment和最后一个Segment外其余的Segment的起始
点都是前一个Segment的终止点,即Path对象的中的Segment不能出现分离,Path可以是任意数的Segment
子类的组合。
Ring几何对象
Ring是一个封闭的Path即起始和终止点有相同的坐标值。它有内部和外部属性。
Polyline几何对象
Polyline对象是由一个或多个相连或者不相连的path对象的有序集合,它可以是单个Path对象组成,也
可以是多个相连的Path对象组成,或者是多个分离的Path组成,如下图所示。Polyline通常用来代表线
状地物如道路,河流,管线等等。
Polylines是有序path组成的集合,可以拥有M、Z和ID属性值。Polyline对象的IPointCollection
接口包含了所有节点的复制,IGeometryCollection接口可以获取polyline的paths,ISegmentCollection
接口可以获取 polyline的segments。
一个Polyline对象必须满足以下准则:
1.组成Polyline对象的所有Path对象必须是有效的。
2.组成Polyline对象的所有Path对象不能重合,相交或自相交。
3.组成Polyline对象的多个Path对象可以连接与某一点,也可以分离。
4.Path对象的长度不能为0.
IPolyline是Polyline类的主要接口,IPolyline的Reshape方法可以使用一个Path对象为一个
Polyline对象整形,IPolyline的SimplifyNetwork方法用于简化网络。
Polyline对象可以使用IGeometryCollection接口添加Path对象的方法来创建,使用该接口需注意
以下情况:
1.每一个Path对象必须是有效的,或使用IPath::Simplify方法后有效。
2.由于Polyline是Path对象的有序集合,所以添加Path对象时必须注意顺序和方向。
3.为了保证Polyline是有效的,可以创建完Polyline对象后使用ITopologicalOperator接口的
Simplify方法。
下面代码片段演示了一个Polyline的构成:
private object pMissing = Type.Missing;
public IGeometry GetPolylineGeometry()
{
const double PathCount = 3;
const double PathVertexCount = 3;
IGeometryCollection pGeometryCollection = new PolylineClass();
for (int i = 0; i < PathCount; i++)
{
IPointCollection pPointCollection = new PathClass();
for (int j = 0; j < PathVertexCount; j++)
{
pPointCollection.AddPoint(GetPoint(), ref pMissing, ref pMissing);
}
pGeometryCollection.AddGeometry(pPointCollection as IGeometry, ref pMissing,
ref pMissing);
}
return pGeometryCollection as IGeometry;
}
private IPoint GetPoint()
{
const double Min = -10;
const double Max = 10;
Random random = new Random();
double x = Min + (Max - Min) * random.NextDouble();
double y = Min + (Max - Min) * random.NextDouble();
return ConstructPoint(x, y);
}
Segment,Path,Ring和Polyline的区别
在这四者当中Segment是最小的单位具体的构成路线可以分为两个条:
Segment-Path-Ring(封闭的Path)
Segment-Path-Polyline
我们可以这样说Segment是Path,只不过是这个Path由一个Segment组成,Ring也是一种
Path,只不过是一个起点和终点重合的Path,至于Polyline那就很明显了,他们的区别可
以从下图看出:
Segment,Path,Ring和Polyline对象的更多相关文章
- Segment,Path,Ring和Polyline的区别
这四者当中Segment是最小的单位,具体的构成路线可以分为两个条:Segment-Path-Ring(封闭的Path)Segment-Path-Polyline Segment 和 Path 可以说 ...
- Polyline对象 - (及其他对象的关系)
Polyline对象是由一个或多个相连或者不相连的path对象的有序集合,通常用来代表线状地物如道路,河流,管线等等.
- Leaflet:Path、Polyline、Polygon、Rectangle、Circle、CircleMarker
下边介绍Vector Layer Path(Layer) Path是其他Vector Layer的父类,比如Polyline.Polygon.Rectangle.Circle.CircleMarker ...
- SVG & convert polygon/polyline to path
SVG & convert polygon/polyline to path SVG Polygon/Polyline to Path Converter https://codepen.io ...
- ArcGIS Engine开发之旅09--几何对象和空间参考
原文:ArcGIS Engine开发之旅09--几何对象和空间参考 1.Geometry Geometry 是 GIS 中使用最为广泛的对象集之一,用户在创建.删除.编辑和进行地理分析的时候,就是处 ...
- Envelope几何对象 Curve对象几何对象 Multipatch几何对象 Geometry集合接口 IGeometryCollection接口
Envelope是所有几何对象的外接矩形,用于表示几何对象的最小边框,所有的几何对象都有一个Envelope对象,IEnvelope是Envelope对象的主要接口,通过它可以获取几何对象的XMax, ...
- 分享:根据svg节点对象类型和路径值转换坐标值
功能用处: 对svg文件的路径节点填充时会使用(相邻两个坐标区域内的四边形的填充颜色不重复). 需要对svg文件中的Path节点或者 Polyline 节点做颜色填充.并且相邻的两个区域之间的颜色不允 ...
- WPF Path总结(一)
首先来看看Path的定义,参考MSDN:绘制一系列相互连接的直线和曲线.介绍比较简单,我们再来看看备注中有些什么,Path 对象可以绘制封闭式还是开放式形状. 多个形状和甚至曲线的形状.与不 Line ...
- 【js】vue 2.5.1 源码学习 (九) 响应数组对象的变
大体思路(八) 本节内容: 1.Observe 如何响应数组的变化 代理原型 数组变异方法 shell cacheArrProto methods 新添加的数组需要加到显示系统里面,拦截 push等的 ...
随机推荐
- CGridCtrl在MFC中的使用(一)
CGridCtrl控件是开源的,可在CodePlex和CodeProject上搜索找到,是VC++中用于显示表格数据的控件.基本功能包括:表格显示,单元格的编辑,单元格颜色设置,鼠标事件的响应,单元格 ...
- Python Cookbook - 1 - 数据结构和算法
1 序列解压:通过*来通配 *a, b = somelist, first, *mid, last = somelist, a, *b = somelist 2 使用双向队列: from col ...
- HDU 5769 Substring
后缀数组. 然后按照排序完成之后的顺序,每个后缀统计贡献量. 统计第i个后缀的贡献的时候,如果这个后缀中没有X,贡献度为0. 有贡献的分3种情况考虑: 1.如果这个后缀height部分等于0(即与前一 ...
- Header,Tab,ListView三个在线性布局中,ListView向上滑动时,Tab标签悬停在顶部,然后Header向上滑出去,这个效果的做法
效果如图: 这个效果可以用一个框架来做,首先在网上搜关键字,然后搜索的结果在这里:http://stackoverflow.com/questions/20906964/viewpager-with- ...
- 第三十五节,json数据类型转换字符串模块
在使用json模块时需要先 import json 引入模块 json.dumps()模块函数 功能:将Python数据类型转换成字符串[有参] 使用方法:json.dumps(要转换的数据类型变量) ...
- Uploadify自定义提示信息
Uploadify是一款基于Jquery的上传插件,用起来很方便.但上传过程中的提示语言为英文,这里整理下如何修改英文为中文提示.方法1:直接修改uploadify.js中的提示信息,将英文提示改成对 ...
- 图解HTTP读书笔记--精简版
这本书重点讲了两点,分别是 HTTP的报文格式 HTTPS比HTTP优秀在哪里 接下来分部分讨论一下: 1. HTTP的报文格式 请求报文格式: 请求行 指明请求方法 请求路径 和协议 如 ...
- Flex4.6 DataGrid GridItemRenderer宣染器
本文转自:http://blog.sina.com.cn/s/blog_71848dcf01012ctl.html,稍作修改 <?xml version="1.0" enco ...
- mysql innobackupex备份工具
先简单介绍一下这个工具:innobackupexinnobackupex比xtarbackup有更强的功能,它整合了xtrabackup和其他的一些功能,他不但可以全量备份/恢复,还可以基于时间的增量 ...
- Tomcat配置远程调试端口
Tomcat配置远程调试端口 1.Linxu系统: apach/bin/startup.sh开始处中增加如下内容: declare -x CATALINA_OPTS="-server -Xd ...