数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 2943|回复: 8

圆与多边形的最小距离计算

[复制链接]
发表于 2020-5-6 01:15 | 显示全部楼层 |阅读模式
一个问题:
给定的二维平面区域内,随机圆(圆心随机,半径=5厘米)与随机凸多边形(3-10边)的最小距离如何计算?
发表于 2020-5-6 12:31 | 显示全部楼层
用点到直线的距离求距离以及交点,交点若在线段外则取端点再计算一次距离;
For 循环依次比较所有线段。

点评

你可以试试看找个简单的圆与正6边形测试下  发表于 2020-5-6 21:30
你可以试试看找个简单的圆与正6边形测试下  发表于 2020-5-6 21:30
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-6 21:30 | 显示全部楼层
Ysu2008 发表于 2020-5-6 12:31
用点到直线的距离求距离以及交点,交点若在线段外则取端点再计算一次距离;
For 循环依次比较所有线段。

你可以试试看找个简单的圆与正6边形测试下
回复 支持 反对

使用道具 举报

发表于 2020-5-6 23:13 | 显示全部楼层
本帖最后由 Ysu2008 于 2020-5-6 23:30 编辑

2#的方法复杂了,可以简化一下:
(1) 依次计算所有多边形顶点到圆心的距离,计算的同时作冒泡找出最小距离 d1 及其对应顶点 P1;
(2) 计算 P1 与左邻点所在直线到圆心的距离 d2 及其交点,如果交点是 P1 与左邻点的内分点则 d2 为有效距离;
(3) 计算 P1 与右邻点所在直线到圆心的距离 d3 及其交点,如果交点是 P1 与右邻点的内分点则 d3 为有效距离;
(4) 从 d1、d2、d3 所有有效距离中找出最小者,减去半径即为所求。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-7 01:55 | 显示全部楼层
xv=[96.0448  85.7495  78.4975 68   65.6094  96.0448];%多边形顶点X坐标。
yv=[12.0598  13.0703  44.7569 25   9.7274   12.0598];
x0=35;%圆心X坐标
y0=40;
r=10;%圆半径

Minimum distance  bewteen Polygon and Circle is 26.249138.
Minimum distance   Circle  co-ordinates is (44.104092,35.862912).
Minimum distance   Polygon  co-ordinates is (68.000000,25.000000).
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-4-25 06:40 , Processed in 0.067383 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表