JSFiddle - React, Tailwind, and code Playground

JavaScript

function Point(x,y) {
   this.x=x;
   this.y=y;
}

// Contour object
function Contour(points) {
    this.pts = points || []; // an array of Point objects defining the contour
}


Contour.prototype.area = function() {
   var area=0;
   var pts = this.pts;
   var nPts = pts.length;
   var j=nPts-1;
   var p1; var p2;

   for (var i=0;i<nPts;j=i++) {
      p1=pts[i]; p2=pts[j];
      area+=p1.x*p2.y;
      area-=p1.y*p2.x;
   }
   area/=2;
    
   return area;
};

Contour.prototype.centroid = function() {
   var pts = this. pts;
   var nPts = pts.length;
   var x=0; var y=0;
   var f;
   var j=nPts-1;
   var p1; var p2;

   for (var i=0;i<nPts;j=i++) {
      p1=pts[i]; p2=pts[j];
      f=p1.x*p2.y-p2.x*p1.y;
      x+=(p1.x+p2.x)*f;
      y+=(p1.y+p2.y)*f;
   }

   f=this.area()*6;
    
   return new Point(x/f, y/f);
};
    
   

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(polygon);
    center = con.centroid();

alert('x: ' + center.x + ' y: ' + center.y)