背景:我正在尝试将地形图裁剪成围绕多个风力涡轮机的最小尺寸椭圆,以最小化地图的尺寸。执行此地图裁剪的程序可以裁剪椭圆,但仅限轴沿 x 轴和 y 轴对齐的椭圆。
我知道边界椭圆问题的算法 https://stackoverflow.com/questions/1768197/bounding-ellipse(找到包围一组点的最小面积椭圆)。
但是,我如何限制这个算法(或制定不同的算法),使得生成的椭圆需要其长轴水平或垂直定向,以给出最小的椭圆为准——并且永远不会成角度?
当然,这个约束使得生成的椭圆大于它“需要”包围所有点,但这仍然是约束。
所描述的算法here http://www.mathworks.com/matlabcentral/fileexchange/9542(在您提供的链接中引用)是关于解决以下优化问题:
minimize log(det(A))
s.t. (P_i - c)'*A*(P_i - c)<= 1
人们可以通过以下约束扩展这个不等式系统(V 是椭圆旋转矩阵,有关详细信息,请参阅上面的链接):
V == [[1, 0], [0, 1]] // horizontal ellipse
or
V == [[0, -1], [1, 0]] // vertical ellipse
使用这些约束中的任何一个来解决优化问题并计算所得椭圆的平方将为您提供所需的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)