边界椭圆约束为水平/垂直轴

时间:2011-09-22 09:28:16

标签: algorithm language-agnostic geometry

背景:我正在尝试将地形图剪辑为围绕多个风力涡轮机的最小尺寸椭圆,以最小化地图的大小。执行此贴图剪裁的程序可以剪切为椭圆,但只有椭圆,其轴沿x轴和y轴对齐。

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

但是,我如何约束这个算法(或制作一个不同的算法),使得得到的椭圆需要使其长轴水平或垂直定向,无论哪个给出最小的椭圆 - 从不以一个角度?

enter image description here

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

1 个答案:

答案 0 :(得分: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

使用这些约束中的任何一个求解优化问题并计算结果椭圆的平方将为您提供所需的结果。

相关问题