合肥市庐阳区濉溪路汇丰广场23单元办1-2301号房 13334162693 shouye@www.j9.com

资讯中心

包住一组角色位置的最小圆由哪些点决定:机制演算第03例

2026-11-11

用一个圆同时包住多个位置时,平均坐标未必是最省半径的圆心。最小包围圆通常由边界上的两个或三个点约束,内部点不会继续把半径撑大。

本例在平面中给出八个不同点。候选圆包含每对点作为直径两端的圆,以及每组三个不共线点的外接圆;保留能包含全部输入点的候选,选半径平方最小者。全程用精确分数表示圆心和平方半径。

本例的输入和输出

八个位置按编号零至七依次为[(6, 5), (2, 3), (6, -3), (-4, -6), (6, 1), (-4, 5), (6, -6), (4, 2)]。

圆心['1', '-1/2'],半径平方221/4。 编号 | 原坐标 | 到圆心距离平方 | 是否在边界 0 | (6, 5) | 221/4 | True 1 | (2, 3) | 53/4 | False 2 | (6, -3) | 125/4 | False 3 | (-4, -6) | 221/4 | True 4 | (6, 1) | 109/4 | False 5 | (-4, 5) | 221/4 | True 6 | (6, -6) | 221/4 | True 7 | (4, 2) | 61/4 | False 边界点编号:[0, 3, 5, 6]

表格中的编号只标识当前例子的元素,不应把对象身份、数组下标与计算数值混为一谈。阅读时先核对输入和边界,再沿记录检查每一步;空结果表示规则下没有可用项,并不是默认返回数值零。

复核与适用条件

把每个输入点到圆心的距离平方与半径平方比较,边界点应恰好相等。最小性还可由边界点对圆心的包围关系检查,不能只因为找到一个容纳全部点的圆就宣称它已经最小。

这里包围的是没有体积的点,未考虑角色宽度、屏幕比例或镜头可达区域。若角色本身有半径,需要使用相应的扩展模型;圆形覆盖也不等于矩形画面里的最佳镜头布局。

练习时先独立复算一小段,再检查整体结果是否满足文中条件。遇到差异应保留中间记录并定位第一处不一致,而不是只调整最后答案。更换输入或操作规则后,需要重新计算,原记录只对这一例负责。