【发布时间】:2013-08-20 18:32:19
【问题描述】:
考虑二维笛卡尔空间中的简单凸多边形。如果给定一个按逆时针方向排序的顶点坐标列表,例如[[x0, y0], ..., [xn, yn]]。如何计算多边形的中心(多边形内与所有顶点等距的点)?
还要考虑第二种情况,即多边形放置在 3D 笛卡尔空间中,并且其法线向量不平行于任何笛卡尔轴。 不旋转多边形如何计算中心?
我可以阅读 C/C++、Fortran、MATLAB 和 Python,但是任何伪代码也很受欢迎。
编辑
我现在意识到我的问题不是很好。我对此感到抱歉。看来我正在寻找的是多边形的质心(即假设均匀密度和均匀重力场,纸板切口将平衡的点)。
【问题讨论】:
-
mean(x) mean (y)?我不确定所有多边形是否存在与所有顶点等距的点(例如 (0,0), (0,1), (0,-1), (3,0) 处的四边形点)。 -
那不是四边形而是T形
-
一般来说,大多数多边形不会有一个与所有顶点等距的点。你知道它们是正常的吗?
-
确定这些点的凸包(如果你愿意,将 (0,0) 移动到 (-0.0001, 0))。无论哪种方式,我认为您所描述的中心一般都不存在。你可以看看en.wikipedia.org/wiki/Centroid#Centroid_of_polygon,如果'质心'是你所追求的。
标签: c++ python matlab geometry polygon