教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

voronoi图的算法编程实现

来源:网络收集 时间:2026-09-20
导读: voronoi图的算法编程实现 悬赏分:10 | 解决时间:2010-4-9 10:19 | 提问者:craftboy000 给个代码,谢谢! 最佳答案 输入:点集S = {p1, p2, …, pn}。 1. 任取pi, pj, pk三点连成三角形 2. 求出此三角形的外心v和半径d 3. 对图中点计算距离d(pr, v),r=1…

voronoi图的算法编程实现

悬赏分:10 | 解决时间:2010-4-9 10:19 | 提问者:craftboy000

给个代码,谢谢!

最佳答案

输入:点集S = {p1, p2, …, pn}。

1. 任取pi, pj, pk三点连成三角形

2. 求出此三角形的外心v和半径d

3. 对图中点计算距离d(pr, v),r=1…n并据此将各点排序,得到p1, p2, …, pn-3。l←1。

4. if d(pl, v)>d then goto 6

5. 改取pl, pi, pj组成三角形。若有多点满足d(pl, v)<d,则取p1, p2, p3连成三角形。goto 2

6. 判定pl在已有哪条有向边或哪两条有向边右侧

7. 修改pl所在多边形的边界及顶点

8. l←l+1,goto 6 直到l>n-3

步骤1,2,4,5,7时间为常数;步骤3要求n-3次计算距离及nlogn次比较;步骤5到步骤2的循环为常数次,步骤6需要O(n)次计算,步骤8 循环n-3次,代价3+4+…+n-1 = O(n2),总时间复杂性为O(n2)。

或者

1. 划分S为规模近似相等的子集S1, S2

2. 递归地构造Vor (S1)和Vor(S2)

3. 构造折线B分开S1, S2,使得对B上任一点v及S1中的点a和S2中的点b,有d(a, v)=d(b, v)。

4. 删去B左侧的Vor(S2)的所有边和位于B右侧的Vor (S1)的所有边,得到Vor(S)

3

回答时间:2010-3-31 21:44 | 我来评论

向TA求助

回答者: zhangsolomon | 二级采纳率:25%

擅长领域: 软件 操作系统/系统故障 程序设计 秦皇岛市 物理学 参加的活动:

提问者对于答案的评价:

谢谢帮助哈

voronoi图的算法编程实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1759292.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)