- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算几何第二次大作业平面点集的Voronoi图扫描线算法展示.PDF
计算几何第二次大作业
平面点集的Voronoi 图扫描线算法展示
前言
扫描线算法是邓老师课上着重讲过的一个算法,其中包含点事件和圆事件,这里我
们对每一步点事件和圆事件进行了停顿,希望可以进行单步展示。
另一方面,本程序也提供了保存和导入功能,其格式与邓老师在第一次作业中定义
的格式相同。可以方便地进行重现。另外,和第一个大作业一样,我们也提供了随机输
入和手动输入两种输入方式。
由于此次发生一些意外,所以时间比较紧张,程序实现难免存在诸多问题,希望您
和其他同学可以谅解。
1. 工程文件及编译说明
1.1 Voronoi, VD
- Voronoi : 界面显示工程
- VD : 后台显示工程
1.2 编译环境
- 编译器 : Microsoft Visual Studio 2008 9.0.21022.8 RTM
- 系统环境 : Microsoft Windows XP Professional 2002 Service Pack 3
1.3 软件运行
- 分别编译生成Voronoi ,VD 两个工程
- 然后把VD 工程中的VD.dll 放到Voronoi 工程文件夹下,或者放到可执行文件相同的
目录下
- 双击运行
2. 程序的特性
2.1 程序特性
- 本程序不能处理任意的数据,对于精度要求比较高的数据处理不了。对于特殊的数
据,程序处理会出错
2.2 出错原因
- 由于是浮点数运算,计算机的精度有限。程序中使用了两种比较方法:
- 1.判断点A 和点B 是同一个点;
- 2.判断点A 和点B 是不同的点;
- 当自定义浮点数精度太高时,2 判断有可能出错
- 当自定义浮点数精度太低时,1 判断有可能出错
- 但是两个判断是不可避免的
- 1 判断在圆事件时判断新生成的交点是抛物线交点的左端点或者右端点
- 2 判断用于三元组是否产生圆事件
3. 算法的局限性
虽然这个算法看上去很华丽,但是华而不实,其中用到了太多的浮点数运算以及极端情
况的处理(零度弧),这样对精度的要求太高。
4. 程序展示:
1. 垂直、水平共线的情况处理:
最终结果:
2. 一般情况:
随机10 个点:
最终结果:
随机100 个点:
最终结果:
随机200 个点:
最终结果:
5. 小结
由于种种原因,这份报告现在才呈现到您和同学们面前,实在非常抱歉。由于时间和精
力的原因,以及遇到了精度问题这样比较难以调节的问题,虽然这个程序有诸多的不完美,
我们还是决定将它提交,但是我相信您还是可以看到我们编程过程中融入的心血,这也是我
们对自己一个还算满意的答复。
另外,我们也实在还需要复习其他科目以及准备第三次 project,所以诸多不足请您和
同学们海涵!
文档评论(0)