在js中找到多边形的中心点

时间:2011-01-27 09:35:52

标签: javascript prototype canvas

我找到一个很好的example如何找到多边形的中心点(and here in JS):

- >请参阅this jsfiddle示例

所以,使用这个多边形

var polygon = [
     {'x':770, 'y':400},
     {'x':529, 'y':643},
     {'x':320, 'y':494},
     {'x':424, 'y':381},
     {'x':459, 'y':369}
];

我应该像这样找到中心点:

var con = new Contour();
    con.pts = polygon;
    document.write(con.centroid)

con.centroidundefined

我做错了什么? 提前谢谢!

3 个答案:

答案 0 :(得分:5)

这是固定版本:jsfiddle

你犯了一些错误 - 首先,你在调用它们之后声明了Contour和Point--因此你无法使用它。 - 你将质心称为属性,它就像一个函数,因此你在质心后缺少括号() - 在质心函数的返回值中,您将x和y作为对象传递,其中函数点将x和y作为单独的值

答案 1 :(得分:3)

首先,您应该在创建“新轮廓”之前定义所有内容。而且,centroid是一个函数,所以你应该使用con.centroid()来调用它。显然你希望该函数返回一个“点”,但我不认为这是正确的方法。看一下这个http://jsfiddle.net/SsCux/3/

PS:我认为在计算区域时出现了问题

答案 2 :(得分:2)

在定义Contour原型之前调用Contour构造函数方式。在所说的jsfiddle中,将你的document.write移到最后,一切都会变得更好。

此外,您需要实际调用您定义的centroid函数:

var c = con.centroid();
document.write( c.x );
document.write( c.y );