计算几何课堂:几何寻路之旅
因为几何寻路之旅所涉及的算法很多,所以我出了一个系列教学视频,讲解了下面相关的四个算法和两个代码实现问题:
- 单调多边形拆分;
- 三角拆分;
- 对偶图 + BFS;
- 漏斗算法;
- DCEL;
- 项目代码解析;
那么这里我把每个章节的视频整理发到这里,方便大家观看,如果大家有任何的问题和建议,都可以给我留言,我会第一时间给大家回复,谢谢大家啦~
1. 视频章节
视频总链接:传送门
第一章:背景介绍
1.1 背景介绍
第二章:单调多边形拆分
2.1 什么是单调多边形
2.2 例子:单调多边形
2.3 5种顶点类型
2.4 例子:5种顶点类型
2.5 (拓展)证明:去除split和merge vertex一定为单调多边形
2.7 伪代码讲解
2.8 例子:单调多边形拆分
2.9 (拓展)如何处理水平边
第三章:三角拆分
3.1 艺术画廊问题(Art Gallery Problem)
3.3 (拓展)三染色问题(3-coloring Problem)
3.4 三角拆分算法思路
3.5 伪代码讲解
3.6 例子:三角拆分
第四章:对偶图 + BFS
4.1 BFS复习
4.2 生成对偶图
4.3 例子:在对偶图中进行BFS
第五章:漏斗算法
5.1 什么是漏斗?
5.2 例子:漏斗算法 & 伪代码讲解
第六章:DCEL(拓展)
6.1 DCEl是什么?
6.2 例子:DCEL
6.3 基本操作
6.4 如何合并边
6.5 如何计算两边夹角
第七章:项目代码解析(拓展)
7.1 如何实现DCEL基本数据结构
7.2 如何实现DCEL的操作
7.3 数据预处理
7.4 如何实现单调多边形拆分
7.5 三角拆分预处理
7.6 如何实现三角拆分
7.7 如何生成对偶图
7.8 实现在对偶图中的BFS
7.9 如何实现漏斗算法
2. 附录:拓展阅读
3. 附录:项目代码
个人作业项目代码:Algorithm
1.1.4 Triangulation
Description | Entry method\File |
---|---|
Partionting monotone polygons | List<Face> makeMonotone( List<Vertex> vertices ) |
Triangulation | List<Face> triangulate( List<Face> monotonePolygons ) |
BFS in a dual graph | void BFS( int sizeOfGraph, DualVertex start, DualVertex end ) |
Funnel algorithm | List<Vector> Funnel( DualVertex startTriangle, Vector startPoint, Vector endPoint ) |
Program ( including visualization ) | CG2017 PA2-1 Shortest Path in The Room |
Pedagogical Aid Webpage | Pedagogical Aid of Triangulation |
4. 参考资料
- 计算几何 | Computational Geometry
- Computational Geometry: Algorithms and Applications
- Simple Stupid Funnel Algorithm
5. 免责声明
※ 本文之中如有错误和不准确的地方,欢迎大家指正哒~
※ 此项目仅用于学习交流,请不要用于任何形式的商用用途,谢谢呢;