2013-09-03 11 views
5

Próbuję dodać wszystkie współrzędne X i Y odpowiednio z punktów ArrayList.jak obliczyć środek ciężkości tablicy wyników punktów

public static ArrayList knots = new ArrayList<Point>(); 



public Point centroid() { 
     Point center = new Point(); 
      for(int i=0; i<knots.size(); i++) { 
      ???????????????????? 
     return center; 
} 

Jak znaleźć centroida ??

+2

co jest ??????????????? – SpringLearner

+1

Spójrz na wikipedia. Jest to po prostu obliczenie środka masy, gdzie zakłada się jednolitą gęstość masy, dzięki czemu formuły są jeszcze łatwiejsze. – mvw

Odpowiedz

17
public Point centroid() { 
    double centroidX = 0, centroidY = 0; 

     for(Point knot : knots) { 
      centroidX += knot.getX(); 
      centroidY += knot.getY(); 
     } 
    return new Point(centroidX/knots.size(), centroidY/knots.size()); 
} 
+0

robienie dobrych uczynków każdego dnia –

+0

Daje błąd: getX() undefined dla obiektu Object – user2398101

+0

i zaktualizowałem swoją odpowiedź za pomocą a dla każdej pętli –

0
public Point centroid() { 
    Point center = new Point(); 
     int sumofx=0,sumofy=0; 
     for(int i=0; i<knots.size(); i++) { 
     sumofx= sumofx+knot[i].x; 
     sumofy=sumofy+knot[i].y; 
     } 
    center.x=sumofx/knots.size(); 
    center.y=sumofy/knots.size(); 
    return center; 

}

Powiązane problemy