【发布时间】:2017-01-15 05:09:49
【问题描述】:
我正在解决一个基本上可以归结为以下问题的问题:
给定:
- 一组
(x,y)点。集合中可能有 0 个点。 -
x和y的最小值和最大值,其中最小值始终为非负数。 - 半径
r
确定是否可以在平面上的任意位置放置一个半径为 r 的圆,以使该圆在边界内且不包含任何点,如果可以,则返回该位置。
允许相交 - 集合中的点可以与圆相交,但不能包含在圆内。圆可以切向接触最小和最大 x 和 y 值,但不能超出范围。
结果将是圆心所在的(x,y)点,或者如果没有这样的位置,则为一些虚拟结果(即(-1,-1))/失败。如果有多个有效的解决方案,返回任何一个都可以。
对解决此类位置的算法有什么想法吗?我最终会在 java 中实现,但我可以使用伪代码。
【问题讨论】:
-
所以,你想说“给定 n 个点和一个范围,找到一个范围内并包含零个点的圆。” ?
-
那个圆的半径是
r,是的。假设您的意思是二维范围。