对于给定的点集,可以使用最小二乘法求解其最小拟合圆。下面介绍一种常见的方法,称为 Kasa’s algorithm。
1、选取任意三个点作为初始圆的三个点,计算其外接圆。
2、对于其它点,若该点在当前圆内,则不做任何处理;否则,将该点作为圆心,更新圆。
3、对于每个点,计算该点与当前圆心的距离,若距离大于圆的半径,则更新圆心和半径。
重复步骤 2 和步骤 3,直到所有点都被处理完毕。
下面是使用 C# 实现 Kasa’s algorithm 的一个例子:
using System;
class Program
{
static void Main(string[] args)
{
// 假设有以下点集
double[,] points = {
{
0, 0}, {
1, 0}, {
0.5, 0.5}, {
0, 1},

最低0.47元/天 解锁文章
1060

被折叠的 条评论
为什么被折叠?



