已知任意多边形顶点坐标,求多边形形心坐标
已知任意多边形(包括L、T、I等)的顶点坐标,并且已按顺时针或逆时针排序。哪位大师知道怎么求这个多边形的形心坐标呀 不好意思,补充一点,不能用作面域的方法来提取形心坐标 你的意思是不是在没画图的情况下直接算出其形心坐标?可能有点困难,期待高手解决。 本帖最后由 qjchen 于 2012-2-1 18:05 编辑http://en.wikipedia.org/wiki/Centroid#Centroid_of_polygon
其中的这个就是公式
Centroid of polygon
The centroid of a non-self-intersecting closed polygon defined by n vertices (x0,y0), (x1,y1), ..., (xn−1,yn−1) is the point (Cx, Cy), where [对于一个封闭的非自交的多边形,形心公式如下]
http://upload.wikimedia.org/wikipedia/en/math/e/e/1/ee14cbb2b170c4bb435f1d84e78f6d66.png
http://upload.wikimedia.org/wikipedia/en/math/a/4/c/a4cee81a1d18e4d067f66d4d40a8a1fe.png
and where A is the polygon's signed area,
http://upload.wikimedia.org/wikipedia/en/math/0/2/a/02aecb75f67f8c7b2fc11fdcbcb6ea80.png
In these formulas, the vertices are assumed to be numbered in order of their occurrence along the polygon's perimeter, and the vertex ( xn , yn ) is assumed to be the same as ( x0 , y0 ). Note that if the points are numbered in clockwise order the area A, computed as above, will have a negative sign; but the centroid coordinates will be correct even in this case [注意,有可能计算出来的面积会是负数,但是形心的位置是不会错的]
假如需要代码的话,可以参考这里 http://stackoverflow.com/questions/2792443/finding-the-centroid-of-a-polygon
gile和Evgeniy也曾经写过带弧线的多线的Lisp代码,不过方法要更加复杂了
假如还需要二次矩的计算的话,可以参考这里
http://paulbourke.net/geometry/polyarea/上面这个网站还有大量的几何图形知识,在http://paulbourke.net/geometry/
谢谢大师!俺就按这个来编码。 本帖最后由 mkhsj928 于 2014-1-27 12:00 编辑
qjchen 发表于 2012-2-1 18:02 static/image/common/back.gif
http://en.wikipedia.org/wiki/Centroid#Centroid_of_polygon
其中的这个就是公式
注意首尾点必须相同,这样才代表闭合“and the vertex ( xn , yn ) is assumed to be the same as ( x0 , y0 )"
刚开始老是不对,才发觉是未闭合的原因!
页:
[1]