найти центральную точку многоугольника в 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: Я думаю, что что-то не так в расчете площади