найти центральную точку многоугольника в js

Я нашел хороший пример как найти центральную точку многоугольника (и здесь, в JS):

-> увидеть этот 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.

что я делаю не так? Заранее спасибо!

3 ответов


вы называете Contour конструктор путь до Contour прототип определен. В jsfiddle, наведите document.write до конца, и все пойдет... лучше.

кроме того, вам нужно на самом деле вызвать centroid функция, которую вы определили:

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

вот: jsfiddle

вы сделали несколько ошибок - прежде всего, вы объявили контур и точку после их вызова-таким образом, вы не смогли ее использовать. - вы вызвали centroid, как если бы это было свойство, и это была функция, поэтому вам не хватало скобок () после centroid - в обратном значении центроидной функции вы передали x и y как объект, где точка функции принимает x и y как отдельные значения


прежде всего, вы должны определить все, прежде чем создавать свой "новый контур". Кроме того, centroid-это функция, поэтому вы должны вызвать ее с помощью con.centroid() . Видимо, вы хотите, чтобы функция возвращает "точку", но я не думаю, что это правильный способ сделать это. Взгляните на этоhttp://jsfiddle.net/SsCux/3/

PS: Я думаю, что что-то не так в расчете площади