相关疑难解决方法(0)

python:帮助实现一个算法,找到给定点的最小面积矩形,以计算长轴和短轴长度

我有一组从多边形(红色)的凸包(蓝色)派生的点(地理坐标值中的黑点).见图:在此输入图像描述

[(560023.44957588764,6362057.3904932579), 
 (560023.44957588764,6362060.3904932579), 
 (560024.44957588764,6362063.3904932579), 
 (560026.94957588764,6362068.3904932579), 
 (560028.44957588764,6362069.8904932579), 
 (560034.94957588764,6362071.8904932579), 
 (560036.44957588764,6362071.8904932579), 
 (560037.44957588764,6362070.3904932579), 
 (560037.44957588764,6362064.8904932579), 
 (560036.44957588764,6362063.3904932579), 
 (560034.94957588764,6362061.3904932579), 
 (560026.94957588764,6362057.8904932579), 
 (560025.44957588764,6362057.3904932579), 
 (560023.44957588764,6362057.3904932579)]
Run Code Online (Sandbox Code Playgroud)

我需要按照这些步骤计算主轴和短轴长度(在R-project和Java中写这篇文章)或遵循这个示例程序

在此输入图像描述

  1. 计算云的凸包.
  2. 对于凸包的每个边缘:2a.计算边缘方向,2b.使用此方向旋转凸包,以便轻松计算旋转凸包2c的最小/最大x/y的边界矩形区域.存储与找到的最小区域对应的方向,
  3. 返回与找到的最小区域对应的矩形.

之后我们知道角度Theta(表示边界矩形相对于图像y轴的方向).找到所有边界点上ab的最小值和最大值:

  • a(xi,yi)= xi*cos Theta + yi sin Theta
  • b(xi,yi)= xi*sin Theta + yi cos Theta

值(a_max-a_min)和(b_max-b_min)分别定义了方向Theta的边界矩形的长度和宽度.

在此输入图像描述

python geometry

18
推荐指数
4
解决办法
2万
查看次数

标签 统计

geometry ×1

python ×1