【发布时间】:2012-03-30 08:24:53
【问题描述】:
如何在 JavaScript 中给定顶点的凹不规则多边形的质心?
我想将一组 x,y 点传递给 JavaScript 函数并获得一个 x,y 点。
var my_points = [{x:3,y:1},{x:5,y:8},{x:2,y:9}];
function get_polygon_centroid(points){
// answer
}
var my_centroid = get_polygon_centroid(my_points);
my_points变量应该只表示要给出的分数的格式,不代表具体给出的分数数。
返回的 质心 将是多边形内的某个点。
最终目标是在 Google Maps V3 应用程序中的多边形质心处添加一个标记。
【问题讨论】:
-
本文有javascript代码:paulbourke.net/geometry/polyarea
-
你考虑过
google.maps.LatLngBounds.getCenter()吗? -
我找到了这个代码:jsfiddle.net/SXde5
-
@AlexKorban center != centroid - "凹不规则多边形"
-
正如 Zevan 所建议的,paulbourke.net/geometry/polyarea/javascript.txt 有一个 JavaScript 质心函数。不完全确定它是否可以处理凸多边形,但随附的插图表明它可以。
标签: javascript polygon