计算机地图制图的理论基础课件
合集下载
计算机地图制图原理与方法基本图形生成算法PPT课件

void MidpointLine (int x0,int y0,int x1, int y1,int color) { int a, b, d1, d2, d, x, y;
a=y0-y1; b=x1-x0;d=2*a+b; d1=2*a;d2=2* (a+b); x=x0;y=y0; while (x<=x1) { SetPixel (x, y, color); if (d<0) {x++;y++; d+=d2; } else {x++; d+=d1;} } /* while */ } /* midPointLine */
第13页/共34页
程序改进
void Bresenhamline (int x0,int y0,int x1, int y1,int color)
{ dx = x1-x0,;dy = y1- y0,;e=-dx;
x=x0; y=y0; for (i=0; i<=dx; i++)
从速度考虑,还 有那些可以改进?
第9页/共34页
3.2.3 生成直线的Bresenham算法
Yi+1 Yi
D
B A
C
xi
Xi+1
第10页/共34页
原理:
d
d
dd
假定直线斜率,0<k<1, 起点坐标为(x,y);
下一个点亮象素可能是:(x+1,y) 或 (x+1,y+1)。这可通过d值的大小来确定:
d = d+k, 当d>1 时 d=d-1 ;
d = F(xp + 2, yp - 0.5)
a=y0-y1; b=x1-x0;d=2*a+b; d1=2*a;d2=2* (a+b); x=x0;y=y0; while (x<=x1) { SetPixel (x, y, color); if (d<0) {x++;y++; d+=d2; } else {x++; d+=d1;} } /* while */ } /* midPointLine */
第13页/共34页
程序改进
void Bresenhamline (int x0,int y0,int x1, int y1,int color)
{ dx = x1-x0,;dy = y1- y0,;e=-dx;
x=x0; y=y0; for (i=0; i<=dx; i++)
从速度考虑,还 有那些可以改进?
第9页/共34页
3.2.3 生成直线的Bresenham算法
Yi+1 Yi
D
B A
C
xi
Xi+1
第10页/共34页
原理:
d
d
dd
假定直线斜率,0<k<1, 起点坐标为(x,y);
下一个点亮象素可能是:(x+1,y) 或 (x+1,y+1)。这可通过d值的大小来确定:
d = d+k, 当d>1 时 d=d-1 ;
d = F(xp + 2, yp - 0.5)
《数字地图制图》PPT课件

• (3)以“层”的方式存取, 以“层”为基础, 每层中以像元为序,记录其坐标和属性值,这 种方式结构简单。
• 二、非空间数据结构 • 非空间数据主要包括专题属性数据、质量描
述数据、时间因素等有关属性的语义信息。
• 地图数据库中的非空间数据有如下几种组织模 式:
• (1) 简单表格数据结构 • (2) 层次数据结构 • (3) 网络数据结构 • (4) 关系数据结构
•
图形要素只出现在三维数据空间结构中,因此表
达地图要素的图形都可以看作是点的集合。从数字制
图角度看,制作地图的过程,就是把构成地图要素的
点、线、面以点的坐标(xyz)一一记录下来,形成
有规律的数字集合,并对这些数字形式的图形信息进
行处理,然后将经过加工的数字信息再现,使其成为 地图图形输出的过程。
•
• 第三节 数字地图制图的基本流程
• 一、数字地图制图的基本流程
• 数字地图制图的基本流程可分为四个阶段:
• 1编辑准备阶段
• 这一阶段的工作与传统的制图过程基本相同, 包括收集、分析评价和确定编图资料,根据编 图要求选定地图投影、比例尺、地图内容、表 示方法等并按自动制图的要求做些编辑准备工 作。
• 在地图中,点、线、面等基础要素构成了一 幅地图,在数据组织形式上表现为:点用单一 的坐标(x,y)来表示,;线则用多个坐标对 来表示,也可以说是用多个点来表示;面同线 一样也是用多个坐标对来表示,与线不同的是, 面的最后一个坐标对必须与第一个坐标相对应。
• 图形数据另一个重要的数据结构就是拓扑结 构,即基本要素点、线、面、体之间具有、邻 接、关联和包含的拓扑关系。
包含的拓扑关系。
• 1.图形数据的基本要素为点、线、面和 体
• 二、非空间数据结构 • 非空间数据主要包括专题属性数据、质量描
述数据、时间因素等有关属性的语义信息。
• 地图数据库中的非空间数据有如下几种组织模 式:
• (1) 简单表格数据结构 • (2) 层次数据结构 • (3) 网络数据结构 • (4) 关系数据结构
•
图形要素只出现在三维数据空间结构中,因此表
达地图要素的图形都可以看作是点的集合。从数字制
图角度看,制作地图的过程,就是把构成地图要素的
点、线、面以点的坐标(xyz)一一记录下来,形成
有规律的数字集合,并对这些数字形式的图形信息进
行处理,然后将经过加工的数字信息再现,使其成为 地图图形输出的过程。
•
• 第三节 数字地图制图的基本流程
• 一、数字地图制图的基本流程
• 数字地图制图的基本流程可分为四个阶段:
• 1编辑准备阶段
• 这一阶段的工作与传统的制图过程基本相同, 包括收集、分析评价和确定编图资料,根据编 图要求选定地图投影、比例尺、地图内容、表 示方法等并按自动制图的要求做些编辑准备工 作。
• 在地图中,点、线、面等基础要素构成了一 幅地图,在数据组织形式上表现为:点用单一 的坐标(x,y)来表示,;线则用多个坐标对 来表示,也可以说是用多个点来表示;面同线 一样也是用多个坐标对来表示,与线不同的是, 面的最后一个坐标对必须与第一个坐标相对应。
• 图形数据另一个重要的数据结构就是拓扑结 构,即基本要素点、线、面、体之间具有、邻 接、关联和包含的拓扑关系。
包含的拓扑关系。
• 1.图形数据的基本要素为点、线、面和 体
No1_计算机地图制图技术

空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
街景地图
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
手绘绿地图???
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
Google Earth掀起的风暴——WebService
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
网络地图搜索
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
计算机地图制图流程
地图制图需求分析
地图制图方案设计 数据来源获取 坐标系统框架定义 设置与输入控制点 数据生产与加工 设置数字化参数 数据优化与规范 读图、分层 固定地图 输入初始化参数
数字化
地图可视化表达 检查修改数字化错误 地图制版与输出
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
SuperMap软件
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
R2V软件
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
计算机地图制图—授课体系
计算机地图制图的发展过程 计算机地图制图的起源 计算机地图无所不在 计算机地图制图与其它学科、技术的关系 计算机地图制图与地图 计算机地图制图与CAD(Computer Aided Design) 计算机地图制图与GIS、RS、GPS 计算机地图制图与数据库技术 计算机地图制图与Web 计算机地图制图与实景地图 制图软件平台(R2V、MapGIS、ArcGIS、MapInfo、AutoCAD) 计算机地图制图流程 课程体系结构介绍
街景地图
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
手绘绿地图???
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
Google Earth掀起的风暴——WebService
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
网络地图搜索
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
计算机地图制图流程
地图制图需求分析
地图制图方案设计 数据来源获取 坐标系统框架定义 设置与输入控制点 数据生产与加工 设置数字化参数 数据优化与规范 读图、分层 固定地图 输入初始化参数
数字化
地图可视化表达 检查修改数字化错误 地图制版与输出
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
SuperMap软件
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
R2V软件
GIS天空; 地图学与GIS实验室/ArcGIS教学与应用研究中心 ; lrjgis@
计算机地图制图—授课体系
计算机地图制图的发展过程 计算机地图制图的起源 计算机地图无所不在 计算机地图制图与其它学科、技术的关系 计算机地图制图与地图 计算机地图制图与CAD(Computer Aided Design) 计算机地图制图与GIS、RS、GPS 计算机地图制图与数据库技术 计算机地图制图与Web 计算机地图制图与实景地图 制图软件平台(R2V、MapGIS、ArcGIS、MapInfo、AutoCAD) 计算机地图制图流程 课程体系结构介绍
计算机地图制图课件【3】地图数据处理资料

加快线捕捉的速度的方法: 1)在实际的捕捉中,可每计算一个距离di就进行一次 比较,若di<D,则捕捉成功,不需再进行下面直线段 到点S的距离计算了。 2)把不可能被光标捕捉到的线,用简单算法去除。 3)对于线段也采用类似的方法处理。 4)简化距离公式:
点S(x,y)到直线段(x1,y1),(x2,y2)的距离d的计算公式为:
——计算机地图制图基本过程
数据采集建库
形式设计
表达输出 数据加工处理
第四讲 地图数据处理
对采集的各种数据,按照不同的方式方法对数踞进行编辑运算, 清除数据沉余,弥补数据缺失,形成符合用户要求的数据文件格式。
主要内容: —— 数据格式转换 —— 坐标变换 —— 图形属性编辑 —— 数据裁切与接边 —— 拓扑及逻辑一致性关系改正 —— 数据压缩与光滑
<4> 三种改正策略
(1)移动河流
(2)移动等高线
(3)同时移动
例2:房屋与道路冲突探测与调整
道路更新后与周边邻近房屋产生冲突(小板房压盖),通过探测,对有 冲突关系的小板房进行旋转、位移处理自动改正该冲突关系。
例3:基于“空间场模型”的群目标冲突 波及范围探测与一致性改正
将地图综合种的移位方法应 用到空间冲突改正中,提出一种 基于场论分析的移位方法,具有 传递性与衰减性特征。 借助于物理学场论中的“等势线 ”模型来表达这一移位现象,在 Delaunay三角网支持下建立多级 邻近关系曲线,探测内部冲突与 外部冲突。
4.1 地图数据格式转换
数据格式:地图数据在文件或记录中的编排格式 。 导致地图数据格式不同的原因包括:
(1)采用不同的数据结构 矢量数据格式 栅格数据格式
(2)不同行业、软件系统出于各种原因定义不同的数据格式
点S(x,y)到直线段(x1,y1),(x2,y2)的距离d的计算公式为:
——计算机地图制图基本过程
数据采集建库
形式设计
表达输出 数据加工处理
第四讲 地图数据处理
对采集的各种数据,按照不同的方式方法对数踞进行编辑运算, 清除数据沉余,弥补数据缺失,形成符合用户要求的数据文件格式。
主要内容: —— 数据格式转换 —— 坐标变换 —— 图形属性编辑 —— 数据裁切与接边 —— 拓扑及逻辑一致性关系改正 —— 数据压缩与光滑
<4> 三种改正策略
(1)移动河流
(2)移动等高线
(3)同时移动
例2:房屋与道路冲突探测与调整
道路更新后与周边邻近房屋产生冲突(小板房压盖),通过探测,对有 冲突关系的小板房进行旋转、位移处理自动改正该冲突关系。
例3:基于“空间场模型”的群目标冲突 波及范围探测与一致性改正
将地图综合种的移位方法应 用到空间冲突改正中,提出一种 基于场论分析的移位方法,具有 传递性与衰减性特征。 借助于物理学场论中的“等势线 ”模型来表达这一移位现象,在 Delaunay三角网支持下建立多级 邻近关系曲线,探测内部冲突与 外部冲突。
4.1 地图数据格式转换
数据格式:地图数据在文件或记录中的编排格式 。 导致地图数据格式不同的原因包括:
(1)采用不同的数据结构 矢量数据格式 栅格数据格式
(2)不同行业、软件系统出于各种原因定义不同的数据格式
《计算机地图制图》课件简介

三、课件基本内容
1. 绪论 了解卫星定位系统发展的历史;了解子午卫星导航系统的原理及发展;掌握 GPS 定位系统的组 成部分及各部分的功能;掌握 GPS 定位的特点;掌握 GPS 的应用领域。 重点:GPS 系统组成。难点:GPS 定位中的空间后方交会原理。 2. 天球坐标系统 了解天球坐标系的用途;掌握天球、春风点、北天极、黄道、北黄极、黄赤交角、岁差、章动 概念;掌握天球三维直角坐标系、天球球面坐标系的定义;掌握协议天球坐标系、瞬时天球坐标系、 平天球坐标系的定义;掌握岁差和章动产生的原因。 重点:协议天球坐标系、瞬时天球坐标系、平天球坐标系的定义。难点:岁差章动产生的原因。 3. 地球坐标系统及时间系统 了解地球坐标系的用途;掌握极移现象及成因;掌握地球三维直角坐标系、大地坐标系的定义; 掌握瞬时地球坐标系和协议地球坐标系的定义;了解协议天球坐标系化为协议地球坐标系的过程; 掌握地心系和参心系的区别。 重点:地心地固坐标系;参心坐标系。难点:各类坐标系间的相互转换。 4. 卫星运动及卫星信号 卫星轨道参数及摄动参数;卫星在观测瞬间的地心地固坐标系中坐标。掌握卫星轨道参数及摄 动参数;掌握卫星坐标计算过程。 难点:观测瞬间卫星坐标计算。 5. RINEX 格式文件的认识 掌握 RINEX 格式文件的类型、文件名的格式;掌握 RINEX 格式文件的格式;掌握精密星历文件 格式。 重点:RINEX 格式文件的格式。难点:提取导航电文中各卫星轨道参数。 6. 静态绝对定位原理 了解测距码、载波相位测量原理;掌握绝对定位的原理;掌握精度衰减因子。 重点:绝对定位原理。难点:测距码、载波相位测量原理。 7. GPS 测速 了解 GPS 测时的原理;了解 GPS 测速的原理。 8. GPS 相对定位原理 掌握单差、双差、三差推理及其优缺点、用途;掌握利用单差模型、双差模型、三差模型进行 定位原理。
1. 绪论 了解卫星定位系统发展的历史;了解子午卫星导航系统的原理及发展;掌握 GPS 定位系统的组 成部分及各部分的功能;掌握 GPS 定位的特点;掌握 GPS 的应用领域。 重点:GPS 系统组成。难点:GPS 定位中的空间后方交会原理。 2. 天球坐标系统 了解天球坐标系的用途;掌握天球、春风点、北天极、黄道、北黄极、黄赤交角、岁差、章动 概念;掌握天球三维直角坐标系、天球球面坐标系的定义;掌握协议天球坐标系、瞬时天球坐标系、 平天球坐标系的定义;掌握岁差和章动产生的原因。 重点:协议天球坐标系、瞬时天球坐标系、平天球坐标系的定义。难点:岁差章动产生的原因。 3. 地球坐标系统及时间系统 了解地球坐标系的用途;掌握极移现象及成因;掌握地球三维直角坐标系、大地坐标系的定义; 掌握瞬时地球坐标系和协议地球坐标系的定义;了解协议天球坐标系化为协议地球坐标系的过程; 掌握地心系和参心系的区别。 重点:地心地固坐标系;参心坐标系。难点:各类坐标系间的相互转换。 4. 卫星运动及卫星信号 卫星轨道参数及摄动参数;卫星在观测瞬间的地心地固坐标系中坐标。掌握卫星轨道参数及摄 动参数;掌握卫星坐标计算过程。 难点:观测瞬间卫星坐标计算。 5. RINEX 格式文件的认识 掌握 RINEX 格式文件的类型、文件名的格式;掌握 RINEX 格式文件的格式;掌握精密星历文件 格式。 重点:RINEX 格式文件的格式。难点:提取导航电文中各卫星轨道参数。 6. 静态绝对定位原理 了解测距码、载波相位测量原理;掌握绝对定位的原理;掌握精度衰减因子。 重点:绝对定位原理。难点:测距码、载波相位测量原理。 7. GPS 测速 了解 GPS 测时的原理;了解 GPS 测速的原理。 8. GPS 相对定位原理 掌握单差、双差、三差推理及其优缺点、用途;掌握利用单差模型、双差模型、三差模型进行 定位原理。
计算机地图制图原理与算法基础.ppt

因此一个功能强大的CAD系统,并不完全适合 于完成计算机地图制图的任务。
(3)计算机地图制图与GIS
计算机地图制图是GIS的重要组成部分。计算机 地图制图侧重于地物的显示和处理,讨论地形、地 物和各种专题要素在地图上的表示,并且以数字形 式对它们进行存贮、管理,最后通过图形输出设备 输出地图。
GIS既注重实体的空间分布又强调它们的可视 化效果,既注重实体的空间特征又强调它们的非空 间(属性)特征及其操作,具备强大的空间分析和 决策支持能力。现代GIS都具有计算机地图制图的 成分,具备良好的地图制图功能,但并非所有计算 机地图制图系统都含有GIS的全部功能。
操作平台
接口
有效区域
标示器
支架
图1-5 手扶跟踪数字化仪
图1-6 标示器
Y行写线
Y脉冲Y脉冲发发生生器 器
X冲发X冲生发生器器
时钟脉冲
时钟脉冲 计数计器数器
图1-7 数字化仪工作原理
X坐标 Y坐标
图1-8 线性CCD外观
谢谢!
1.2 计算机地图制图的一般过程
数据获取
数据处理
数据输出
地图数字化 影像数字化 数字测图 数据转贮 键盘录入 ……
图1成 自动综合 曲线光滑 分析处理 注记配置 符号化处理
图形显示 绘图输出 胶片输出 光盘输出
……
……
计算机地图制图的一般过程
1.3 计算机地图制图的设备
不同之处: CAD一般采用几何坐标系,处理的多为规则
几何图形及其组合,图形功能尤其是三维图形功 能极强,属性数据处理功能相对较弱。
计算机地图制图一般采用大地坐标系,处理 的多为地理空间的自然目标和人工目标,图形关 系更为复杂,因而图形处理的难度更大,且制图 数据来源广、输入方式多样化。特别是专题地图 的自动绘制,需要丰富的地图符号库和属性数据 库支持。
(3)计算机地图制图与GIS
计算机地图制图是GIS的重要组成部分。计算机 地图制图侧重于地物的显示和处理,讨论地形、地 物和各种专题要素在地图上的表示,并且以数字形 式对它们进行存贮、管理,最后通过图形输出设备 输出地图。
GIS既注重实体的空间分布又强调它们的可视 化效果,既注重实体的空间特征又强调它们的非空 间(属性)特征及其操作,具备强大的空间分析和 决策支持能力。现代GIS都具有计算机地图制图的 成分,具备良好的地图制图功能,但并非所有计算 机地图制图系统都含有GIS的全部功能。
操作平台
接口
有效区域
标示器
支架
图1-5 手扶跟踪数字化仪
图1-6 标示器
Y行写线
Y脉冲Y脉冲发发生生器 器
X冲发X冲生发生器器
时钟脉冲
时钟脉冲 计数计器数器
图1-7 数字化仪工作原理
X坐标 Y坐标
图1-8 线性CCD外观
谢谢!
1.2 计算机地图制图的一般过程
数据获取
数据处理
数据输出
地图数字化 影像数字化 数字测图 数据转贮 键盘录入 ……
图1成 自动综合 曲线光滑 分析处理 注记配置 符号化处理
图形显示 绘图输出 胶片输出 光盘输出
……
……
计算机地图制图的一般过程
1.3 计算机地图制图的设备
不同之处: CAD一般采用几何坐标系,处理的多为规则
几何图形及其组合,图形功能尤其是三维图形功 能极强,属性数据处理功能相对较弱。
计算机地图制图一般采用大地坐标系,处理 的多为地理空间的自然目标和人工目标,图形关 系更为复杂,因而图形处理的难度更大,且制图 数据来源广、输入方式多样化。特别是专题地图 的自动绘制,需要丰富的地图符号库和属性数据 库支持。
计算机制图基本知识课件

总结词
环境艺术设计制图是计算机制图在环境艺术 设计领域的应用,它涉及到景观设计、室内 设计、城市规划等多个方面。
详细描述
环境艺术设计制图使用CAD和GIS(地理信 息系统)软件,实现环境景观的规划和设计 。通过精确的室内设计制图,保证室内装修 和布局的美观和实用性。城市规划则能通过 计算机制图实现城市空间布局的优化和可持 续发展。
SketchUp
总结词
易用的3D建模软件
详细描述
SketchUp是一款简单易用的3D建模软件,广泛应用于建筑、景观、室内设计等 领域。它提供了丰富的绘图工具和强大的编辑功能,支持导入和导出多种文件格 式,方便与其他软件的协作。
SolidWorks
总结词
专业的3D机械设计软件
详细描述
SolidWorks是一款专业的3D机械设计软件,广泛应用于机械、汽车、航空航天等领域。它提供了丰 富的绘图工具和强大的编辑功能,支持参数化设计、装配体设计和工程图生成等功能,可以大大提高 设计效率。
计算机制图基本知识课件
• 计算机制图概述 • 计算机制图基础知识 • 常用计算机制图软件 • 计算机制图进阶知识 • 计算机制图实践应用
01
计算机制图概述
计算机制图定义
01
计算机制图是指利用计算机技术 进行图形设计和绘制的统称。
02
它涉及使用各种软件工具和技术 ,将设计理念转化为数字图形, 并进行编辑、修改和输出。
机械设计制图
总结词
机械设计制图是计算机制图在机械工程领域的应用,它涉及到零件设计、装配图绘制和 运动仿真等多个方面。
详细描述
机械设计制图使用CAD软件,实现零件的精确设计和建模。通过装配图绘制,保证机 械设备的正确组装和运行。同时,运动仿真能够模拟机械设备的运动状态和性能,为优
算机地图制图原理概

面状符号
表示面状地物,如森林、湖泊 等。
文字和数字注记
表示地物的名称、数量、质量 等属性信息。
03
CATALOGUE
计算机地图制图技术原理
03
CATALOGUE
计算机地图制图技术原理
数字地图的制作流程
地图数据采集
通过实地调查、遥感技术、GPS定位等方式 获取地图数据。
地图符号化
将地理信息数据转化为可视化的地图符号, 以表达地理要素的特征和属性。
坐标系统
描述地理要素的空间位置,常见的坐 标系统有地理坐标、投影坐标等。
坐标转换
在地图制作过程中,可能需要将不同 坐标系统进行转换,以确保地图的准 确性和一致性。
地理信息系统的应用
GIS概述
GIS功能
地理信息系统是一种用于处理、分析和表 达地理数据的计算机系统。
包括数据输入、编辑、查询、分析、可视 化等,广泛应用于资源管理、城市规划等 领域。
环境监测等。
灾害应急响应
地图制图软件在灾害应急响应中用于 制作应急地图、进行灾害评估和资源
调度等。
自然资源管理
在土地资源管理、森林资源管理、水 资源管理等领域,地图制图软件发挥 着重要作用。
商业决策支持
地图制图软件可以为商业决策提供可 视化支持,如市场分析、物流规划等 。
软件应用案例分析
城市规划与管理
软件内置或支持插件形 式的空间分析工具,如 缓冲区分析、叠加分析 、网络分析等,用于解 决各种地理空间问题。
地图制图软件支持多种 形式的可视化表达,如 柱状图、饼图、热力图 等,同时可以将地图导 出为各种格式的文件, 如PDF、JPEG、PNG等 。
软件功能和使用方法
数据输入与处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0° ≤ β < 360°
判断点与多边形位置关系的铅垂线内点算法 判断点与多边形位置关系的铅垂线内点算法
(适用于带孔多边形 适用于带孔多边形) 适用于带孔多边形
基本思想:从待判别点引铅垂线, 基本思想:从待判别点引铅垂线,由该铅垂线 注意:是一条射线)与多边形交点个数的奇 (注意:是一条射线)与多边形交点个数的奇 偶性来判断点是否在多边形内 来判断点是否在多边形内。 偶性来判断点是否在多边形内。 若交点个数为奇数,点在多边形内; 若交点个数为奇数,点在多边形内; 若交点个数为偶数,则该点在多边形外。 若交点个数为偶数,则该点在究的重点问题是求线与面的相交。 线面关系研究的重点问题是求线与面的相交。 求线与面的相交 线段与多边形交线的算法 :
第一步,求多边形的最小投影矩形。 第一步,求多边形的最小投影矩形。 第二步, 第二步,判断线段是否有端点在该最小投影矩形 若不在,结论为“线段与多边形相离” 中。若不在,结论为“线段与多边形相离”,算 法结束;否则,执行第三步。 法结束;否则,执行第三步。 第三步,顺次判断线段与多边形各边是否有交点, 第三步,顺次判断线段与多边形各边是否有交点, 若有交点,则求出并保存交点坐标。 若有交点,则求出并保存交点坐标。 第四步,对交点坐标排序:计算各交点与线段一 第四步,对交点坐标排序:计算各交点与线段一 端点的距离 的距离, 端点的距离,然后按照距离由小到大对交点编号 排序。 排序。 第五步,按规律连接各个交点, 第五步,按规律连接各个交点,得到位于多边形内部的 连接各个交点 交线。 交线。
判断点线侧位关系的意义? 判断点线侧位关系的意义?
1.2 点、线关系的判别方法 点线关系判别的目的之一是确定点是否在线上。 点线关系判别的目的之一是确定点是否在线上。
p1
P2 B P6
P3
P4
A
P5
点线关系的判断(虚线为投影矩形) 图2-1 点线关系的判断(虚线为投影矩形)
1.3 点到线的距离计算
{ if(((PointXyz[j].x<x&&x<PointXyz[j+2].x)||(PointXyz[j+2].x<x&&x<PointXyz[j].x))&&PointXyz[j+2].y>y) //若前后相邻的两顶点在该顶点所做铅垂线分得异侧,则num++ 若前后相邻的两顶点在该顶点所做铅垂线分得异侧, 若前后相邻的两顶点在该顶点所做铅垂线分得异侧 num=num+1; else if(x==PointXyz[j+1].x&&x==PointXyz[j+2].x&&PointXyz[j+2].y>y) //若铅垂线与边部分重合 若铅垂线与边部分重合 { if((PointXyz[j+3].x<x&&x<PointXyz[j].x)||(PointXyz[j].x<x&&x<PointXyz[j+3].x)) num=num+1; } } } if(num%2==1) { MessageBox("点在多边形内!");} 点在多边形内! 点在多边形内 else if(num%2==0) { MessageBox("点在多边形外!");} 点在多边形外! 点在多边形外 }
部分源代码: 部分源代码:
void CDraw1View::judge2(float x, float y) { float xmax=PointXyz[0].x; float xmin=PointXyz[0].x; float ymin=PointXyz[0].y; float fy; //fy为待判断点与直线方程的交点的纵坐标 为待判断点与直线方程的交点的纵坐标 int num=0; //记录待判断点与直线方程的交点的数目 记录待判断点与直线方程的交点的数目 PointXyz[a].x=PointXyz[0].x; PointXyz[a].y=PointXyz[0].y; PointXyz[a+1].x=PointXyz[1].x;PointXyz[a+1].y=PointXyz[1].y; PointXyz[a+2].x=PointXyz[2].x; PointXyz[a+2].y=PointXyz[2].y; PointXyz[a+3].x=PointXyz[3].x; PointXyz[a+3].y=PointXyz[3].y;
3.2 点与多边形位置关系的计算
判断点与多边形位置关系的夹角求和算法
(只适用于简单多边形 对于带孔多边形的算法改进比较麻烦 只适用于简单多边形,对于带孔多边形的算法改进比较麻烦 只适用于简单多边形 对于带孔多边形的算法改进比较麻烦)
设有一简单n边形,其顶点可以表示为 设有一简单 边形,其顶点可以表示为Pi(xi,yi), 边形 i=1,2…, ,另有待判别的独立点A。连接点A与多边 =1,2…,n,另有待判别的独立点A =1,2…, 形的各个顶点,计算其夹角和,且规定顺时针方向 形的各个顶点,计算其夹角和, 旋转的角度为正 逆时针方向旋转的角度为负 旋转的角度为正,逆时针方向旋转的角度为负。若 有
若满足: 若满足:
图2-5 点与三角形的位置关系
则点P位于三角形的内部,否则点 位 则点 位于三角形的内部,否则点P位 位于三角形的内部 于三角形的外部。 于三角形的外部。
void CTView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default //CView::OnLButtonUp(nFlags, point); if(m_DrawCurrent==2) { float F1=f1(PointXyz[2].x,PointXyz[2].y); float F2=f2(PointXyz[0].x,PointXyz[0].y); float F3=f3(PointXyz[1].x,PointXyz[1].y); float F4=f1(float(mPointOrign.x),float(mPointOrign.y)); float F5=f2(float(mPointOrign.x),float(mPointOrign.y)); float F6=f3(float(mPointOrign.x),float(mPointOrign.y)); if(F1*F4>0 && F2*F5>0 && F3*F6>0) MessageBox(" 点在三角形内! "); 点在三角形内! 点在三角形外! else MessageBox(" 点在三角形外! "); ReleaseCapture(); } }
A P1
P2
P2 P1 A P3 P4
(b)
P3 P4
(a)
图2-12 铅垂线交于多边形的顶点
P2 P1 P1 A P3 P2
A P3
P6 P5
(a)
P4
P5
P4
(b)
图2-13 铅垂线与多边形的一边相重合
特殊情况的考虑: 特殊情况的考虑: 1. 交点位于多边形顶点 建立铅垂线的直线方程,判断该顶点前、 建立铅垂线的直线方程,判断该顶点前、后相邻 的两顶点是否在铅垂线的同侧,若在同侧, 的两顶点是否在铅垂线的同侧,若在同侧,Num不 变,否则Num加1。 2. 铅垂线与多边形的一条边重合 建立铅垂线的直线方程, 建立铅垂线的直线方程,判断与该边两端点相邻的 后两顶点是否在铅垂线的同侧,若在同侧, 前、后两顶点是否在铅垂线的同侧,若在同侧, Num不变 否则Num 不变, Num加 Num不变,否则Num加1。
点到线段的距离可能是该点与线段某一端点的距离, 点到线段的距离可能是该点与线段某一端点的距离, 某一端点的距离 也可能是点到线段的垂距 垂距。 也可能是点到线段的垂距。
p1 p1
A
p2 (a)
A
p2
(b)
图2-2 点与线段距离的两种情形
点到线的距离有最远距离和最近距离。 点到线的距离有最远距离和最近距离。
图2-4 折线的单调链划分及其投影矩形 折线自相交的判断与此基本一样. 折线自相交的判断与此基本一样
3.点面关系 3.点面关系
3.1点与三角形位置关系的计算 3.1点与三角形位置关系的计算 AB BC CA
f1 ( x, y ) = a1 x + b1 y + c1 f 2 ( x, y ) = a 2 x + b2 y + c2
1. 点线关系
点在线上
点线相离
研究重点:点与线段的侧位关系判断、 研究重点:点与线段的侧位关系判断、点与线 拓扑关系的判别方法及点到线的距离计算。 拓扑关系的判别方法及点到线的距离计算。
1.1 点线侧位关系判断
Ax 设有一条直线,其方程为: 设有一条直线,其方程为: + By + C = 0 ,则对于函 数 f ( x, y ) = Ax + By + C ,任取空间一点 m( x0 , y 0 ) ,有:
l6 l4 l3 l2 k1
第一步:生成单调链 此图中 第一步:生成单调链(此图中 为关于纵坐标的单调链) 为关于纵坐标的单调链
k2
L
l1 l5
K
k3
第二步: 第二步:计算每个单调链的 最小投影矩形 第三步: 第三步:两两判断最小投影 矩形是否相交,如相交 如相交,才判 矩形是否相交 如相交 才判 断其对应单调链是否相交. 断其对应单调链是否相交
f 3 ( x, y ) = a3 x + b3 y + c3