2013-09-03 30 views
5

Tôi đang cố gắng để thêm lên tất cả các phối hợp x và y tương ứng từ các điểm của ArrayList.làm thế nào để tính toán trọng tâm của một arraylist của các điểm

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



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

Làm cách nào để tìm centroid ??

+2

gì là ??????????????? – SpringLearner

+1

Hãy xem wikipedia. Nó chỉ là tính toán trung tâm của khối lượng, nơi bạn giả định một mật độ khối lượng thống nhất, làm cho các công thức dễ dàng hơn. – mvw

Trả lời

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

Thực hiện một hành động tốt mỗi ngày –

+0

Cung cấp một lỗi: getX() không xác định đối với loại đối tượng – user2398101

+0

i cập nhật câu trả lời của tôi bằng cách sử dụng cho mỗi vòng lặp –

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; 

}

Các vấn đề liên quan