Trọng tâm (còn gọi là tâm khối lượng, hoặc trọng tâm) của một đa giác có thể được tính là tổng trọng số của các tâm của một phân vùng của đa giác thành các hình tam giác. Trọng tâm của một tam giác chỉ đơn giản là trung bình của ba đỉnh của nó, tức là nó có tọa độ (x1 + x2 + x3) / 3 và (y1 + y2 + y3) / 3. Điều này cho thấy đầu tiên là tam giác đa giác, sau đó tạo thành một tổng số tâm của mỗi tam giác, được tính theo diện tích của mỗi tam giác, toàn bộ tổng được chuẩn hóa bởi tổng diện tích đa giác. Điều này thực sự hoạt động, nhưng có một phương pháp đơn giản hơn: tam giác không cần phải là phân vùng, mà có thể sử dụng các tam giác theo hướng tích cực và tiêu cực (với các vùng dương và âm), như được sử dụng khi tính toán diện tích của đa giác. Điều này dẫn đến một thuật toán rất đơn giản để tính toán trọng tâm, dựa trên tổng số các tâm tam giác có trọng số với diện tích đã ký của chúng. Các tam giác có thể được lấy là các hình được tạo bởi bất kỳ điểm cố định nào, ví dụ: đỉnh v0 của đa giác và hai điểm cuối của các cạnh liên tiếp của đa giác: (v1, v2), (v2, v3), v.v. của một tam giác có các đỉnh a, b, c là một nửa của biểu thức này: (b [X] - a [X]) * (c [Y] - a [Y]) - (c [X] - a [X] ) * (b [Y] - a [Y]);
Code available at ftp://cs.smith.edu/pub/code/centroid.c (3K).
Reference: [Gems IV] pp.3-6; also includes code.
Dường như với tôi rằng phương pháp này là chính xác. Nếu bạn muốn kiểm tra cách sử dụng các giá trị tọa độ và nếu có thể xảy ra lỗi làm tròn, v.v. bạn có thể xem mã nguồn của JTS hoặc GEOS.