如何识别给定点的近似周围矩形?
预期输出:如下图所示。
输入:下半部分。
答案 0 :(得分:3)
我的建议是按照以下两个步骤进行:
已编辑:实际上,上述两个步骤不足以成为正确且可接受的答案。
在这两个步骤之前,你必须先预处理这一点。
检查集合的大小:如果它只有1点或2点,你必须特殊处理它们(对于1点你可以找到任何最小的盒子来包含它你自己的方法; 2点可能使它们成为边界框的对角线?)
如果结果集合还有> = 3分,那么只需按照我原来的2个步骤:凸包+旋转卡尺
欢呼声。
答案 1 :(得分:2)
这似乎是minimzation problem with constraints。
你需要找到4行:
l1: a1x + b1y + c1 = 0
l2: a1x + b1y + c2 = 0
l3: a2x + b2y + c3 = 0
l4: a2x + b2y + c4 = 0
所以,你有8个变量:a1,a2,b1,b2,c1,c2,c3,c4
您需要最小化:
Sum(distance(li,point_j) | i from [1,4], j - over all points)
受限制:
l1 dot l3 = 0 [ensuring rectangle - cosine=0->angle between lines=90]
for each point j:
a1xj + b1yj + c1 >=0 ['above' l1]
a1xj + b1yj + c2 <= 0 ['below' l2]
(similarly for l3,l4)
请注意,您可以更改目标函数以匹配其他最小化条件,例如最小区域。