请教一个困扰多年未找到思路的问题

hellolongbin 2011-10-13 09:34:21
有一个不规则图形(比如某国、某省地图),如何找到一个直径最小的圆把这个图形完整包含在这个圆里面?

分不多了,希望大家不要介意
...全文
375 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
newwst 2011-10-17
  • 打赏
  • 举报
回复
算法:
1、对图形黑白化——也就是改成01矩阵存放。
2、求出这个矩阵是几乘几的。
3、求对角线长度,就是圆的直径。求解完毕。
数学依据:
图形是嵌套在矩形里的对吧?
矩形内最长距离就是对角线距离。不可能找出另外一条直线比它更长,不妨试试,哈哈。
lyaywy1987 2011-10-17
  • 打赏
  • 举报
回复
2点之间最远距离
AndyZhang 2011-10-17
  • 打赏
  • 举报
回复
凸包的直径
Jokul_Lee 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hellolongbin 的回复:]

谢谢楼上各位 我没有那么专业 所谓的算法也不懂 这个问题只是偶尔想到的 如果是不规则图形,如何遍历各个点?
矩形那个方法好像也不行
[/Quote]不规则图形也是画出来的对吧,就在画边的时候可以获取到他的边上的每个点喽。
边应该是以定点信息画出来的。
如果你只说是多边形,一点数据信息也没有,任谁也不可能做到吧。
bingshanzhiling 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sasuke38 的回复:]

引用 15 楼 lyaywy1987 的回复:
2点之间最远距离

同意这个观点 两点之间直线相连距离最远的就是圆的直径 至于代码 我想不出来
[/Quote]
代码就简单了吧,求相距最远的俩个点之间的距离有算法的。
Jobernowl 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lyaywy1987 的回复:]
2点之间最远距离
[/Quote]
同意这个观点 两点之间直线相连距离最远的就是圆的直径 至于代码 我想不出来
hellolongbin 2011-10-15
  • 打赏
  • 举报
回复
谢谢楼上各位 我没有那么专业 所谓的算法也不懂 这个问题只是偶尔想到的 如果是不规则图形,如何遍历各个点?
矩形那个方法好像也不行
SuperFC 2011-10-14
  • 打赏
  • 举报
回复
记得这好像是啥时候的一道奥数题吧,反正时间长了!顶一顶,十年少!
天外来客-007 2011-10-14
  • 打赏
  • 举报
回复
凸包算法!
Jokul_Lee 2011-10-14
  • 打赏
  • 举报
回复
扫描该图形,获取上下左右最大最小值。
确立一个矩形,求对角线交点,
以对角线交点为基点,扫描整个图形边缘上的每个点,取一个最大距离。
这个值就是半径,基点就是圆心。

只是简单想了想,不能保证正确。
Jokul_Lee 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wo65432519 的回复:]

引用 6 楼 libralibra 的回复:

求最小外接矩形,矩形长边的一般就是半径



偶同意啊!
[/Quote]
应该不行
fanster28_ 2011-10-13
  • 打赏
  • 举报
回复
如果不想实现O(n)的,可以写个简单的,效率也不错

维护一个当前解(3个点的外覆圆),每次选距离解最远的点,更新当前解
迭代之,直到所有的都在当前圆内部,一般来说,会收敛很快的
pb_myown 2011-10-13
  • 打赏
  • 举报
回复
我的思路:
找出距离最远的两点A、B,以AB为直径画圆,记录圆心O和半径R;
再次遍历顶点,找出距离O最远的点C(非A、B);
如果OC<R,则以O为圆心,R为半径的圆是最小圆;否则,以A、B、C三点画的圆是最小圆。
(未实验过)
shupo 2011-10-13
  • 打赏
  • 举报
回复
顶一下
fanster28_ 2011-10-13
  • 打赏
  • 举报
回复
园 ---> 圆
fanster28_ 2011-10-13
  • 打赏
  • 举报
回复
凸包的最小外覆园,这个不至于困扰很多年吧,暴力也就O(n^3)

事实上这个是有O(n)的解法的

http://en.wikipedia.org/wiki/Smallest_circle_problem
Joe-xXx 2011-10-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 libralibra 的回复:]

求最小外接矩形,矩形长边的一般就是半径
[/Quote]


偶同意啊!
libralibra 2011-10-13
  • 打赏
  • 举报
回复
求最小外接矩形,矩形长边的一般就是半径

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧