我找到一个很好的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.centroid
为undefined
。
我做错了什么? 提前谢谢!
答案 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 );