2011-09-22 94 views
6

上下文:我试图将地形图裁剪成围绕多个风力涡轮机的最小尺寸椭圆,以最小化地图的大小。执行此映射裁剪的程序可以用椭圆形进行裁剪,但只有椭圆轴的x轴和y轴对齐。限制水平/垂直轴的边界椭圆

我知道algorithm for the bounding ellipse problem(找到包围一组点的最小面积的椭圆)。

但是,我该如何限制这个算法(或者制作一个不同的算法),使得所得到的椭圆需要水平或垂直地定向其主轴,无论哪个给出最小的椭圆 - 并且从不以某个角度?

enter image description here

当然,这种约束使得生成的椭圆大于它“需要”是包围所有的点,但是这是约束仍然。

+0

以及如何使算法更一般:允许更多的椭圆和寻找具有最高信息标准(相当于最小的AIC值)的解决方案? – TMS

回答

2

该算法描述here(在你提供的链接所引用)为约求解以下优化问题:

minimize log(det(A)) 
s.t. (P_i - c)'*A*(P_i - c)<= 1 

人们可以延长该系统的不平等的具有以下约束(V是椭圆旋转矩阵,为详细的信息请参见上面的链接):

V == [[1, 0], [0, 1]] // horizontal ellipse 

V == [[0, -1], [1, 0]] // vertical ellipse 

使用这些约束条件解决优化问题并计算所得椭圆的平方将为您提供所需的结果。