2013-09-03 4 views
5

Я пытаюсь сложить все координаты x и y соответственно из точек ArrayList.Как вычислить центроид архариста точек

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



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

Как найти центроид?

+2

что ??????????????? – SpringLearner

+1

Посмотрите на Википедию. Он просто вычисляет центр масс, где вы принимаете однородную плотность массы, делая формулы еще проще. – mvw

ответ

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

Делаю доброе дело каждый день –

+0

Дает ошибку: getX() не определено для типа Object – user2398101

+0

i обновил мой ответ, используя для каждого цикла –

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; 

}

Смежные вопросы