难题:求任意多边形的最大内切圆!

forestrygis 2006-11-21 04:30:12
一个多边形的各顶点坐标:
1. X= 556.7058 Y= 758.3251
2. X= 936.7326 Y=1031.4554
3. X=1474.5482 Y= 904.8828
4. X=1621.2252 Y= 245.3731
5. X=1010.0711 Y= 145.4474
6. X=1178.9718 Y= 627.3114
7. X=1127.8571 Y= 760.5457
8. X= 643.3786 Y= 645.0760
求该多边形的最大内切圆的半径,该圆应完全被包含在多边形中.
...全文
355 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赖勇浩 2006-11-24
  • 打赏
  • 举报
回复
呵呵,如果你用其它方法能找到比这个算法好的解,相信速度肯定没有这个算法快~
这是NP完全问题,你想找一个趋近最优的解是很难的。
forestrygis 2006-11-23
  • 打赏
  • 举报
回复
谢谢你的答复!
不过我个人认为你的算法不是很可取,运行起来可能比较慢!
赖勇浩 2006-11-22
  • 打赏
  • 举报
回复
简单地说,假设这个多边形是一块放在地上的不规则纸板,现在你手上无穷个圆型的铁圈,从无穷小到无穷大个,并且依大小编了号。
然后你随机地从抽取出一千个铁圈(大小不一),一个一个地抛上天空,然后它们就掉下来了;有些落在了纸板上,有些一部分压住了纸板,有些根本没挨着纸板...。
这时候你可以把落在纸板上的铁圈换成稍大一点的放在同一个位置(圆心),可以把一部分压住纸板的铁圈移动一下位置,可以把圈住了纸板的铁圈换成一个小一些的的铁圈放在同一个位置(圆心),可以把没挨着纸板的铁圈向纸板靠近一点,当然,你也可以同时改变铁圈的大小和位置。
就这样你处理完了这一千个铁圈,然后你就不停地这样重复处理之,
慢慢地,纸板上的铁圈就会越来越接近最大的内接圆,也就是你求得解了~

这就是粒子群优化~
forestrygis 2006-11-22
  • 打赏
  • 举报
回复
感谢恋花蝶的回复!
首先我不是很懂你所说的,可以把算法说一下吗?
我对我提的问题理解有误,现在更正如下:
求任意多边形内的最大圆的圆心坐标及半径?
一直关注!!!
赖勇浩 2006-11-21
  • 打赏
  • 举报
回复
粒子群算法应该会更好些~
赖勇浩 2006-11-21
  • 打赏
  • 举报
回复
遗传算法~

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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