问题
求凸多边形重心的坐标。
三角形重心
顶点为a,b,c的三角形重心坐标为
xgravity=3xa+xb+xcygravity=3ya+yb+yc 凸多边形重心
凸多边形的重心不能像三角形一样求所有顶点的xi和yi坐标的平均值。
对于n个顶点的凸多边形,类似Convex Polygon Area的方法,在凸多边形中选取一个顶点p,p与其他顶点连线可以将凸多边形划分为n−2个三角形,对于每个三角形求其重心和面积。可以得到所有三角形的重心为center1,center2,⋯centern,面积为area1,area2,⋯arean。
该凸多边形的重心是所有三角形的重心坐标的面积加权平均值:
{xgravity=∑i=1nareai∑i=1nxcenteri∗areaiygravity=∑i=1nareai∑i=1nycenteri∗areai1≤i≤n 源码
ConvexPolygonGravityCenter.h
ConvexPolygonGravityCenter.cpp
测试
ConvexPolygonGravityCenterTest.cpp