private static Point computeLineCentroid(Polyline polyline) { double xSum = 0; double ySum = 0; double weightSum = 0; for (int i = 0; i < polyline.getPathCount(); i++) { Point startPoint = polyline.getPoint(polyline.getPathStart(i)); Point endPoint = polyline.getPoint(polyline.getPathEnd(i) - 1); double dx = endPoint.getX() - startPoint.getX(); double dy = endPoint.getY() - startPoint.getY(); double length = sqrt(dx * dx + dy * dy); weightSum += length; xSum += (startPoint.getX() + endPoint.getX()) * length / 2; ySum += (startPoint.getY() + endPoint.getY()) * length / 2; } return new Point(xSum / weightSum, ySum / weightSum); }
private static Point2D computePolylineCentroid(Polyline polyline) { double xSum = 0; double ySum = 0; double weightSum = 0; Point2D startPoint = new Point2D(); Point2D endPoint = new Point2D(); for (int i = 0; i < polyline.getPathCount(); i++) { polyline.getXY(polyline.getPathStart(i), startPoint); polyline.getXY(polyline.getPathEnd(i) - 1, endPoint); double dx = endPoint.x - startPoint.x; double dy = endPoint.y - startPoint.y; double length = sqrt(dx * dx + dy * dy); weightSum += length; xSum += (startPoint.x + endPoint.x) * length / 2; ySum += (startPoint.y + endPoint.y) * length / 2; } return new Point2D(xSum / weightSum, ySum / weightSum); }
private static Point2D computePolylineCentroid(Polyline polyline) { double xSum = 0; double ySum = 0; double weightSum = 0; Point2D startPoint = new Point2D(); Point2D endPoint = new Point2D(); for (int i = 0; i < polyline.getPathCount(); i++) { polyline.getXY(polyline.getPathStart(i), startPoint); polyline.getXY(polyline.getPathEnd(i) - 1, endPoint); double dx = endPoint.x - startPoint.x; double dy = endPoint.y - startPoint.y; double length = sqrt(dx * dx + dy * dy); weightSum += length; xSum += (startPoint.x + endPoint.x) * length / 2; ySum += (startPoint.y + endPoint.y) * length / 2; } return new Point2D(xSum / weightSum, ySum / weightSum); }
private static Point computeLineCentroid(Polyline polyline) { double xSum = 0; double ySum = 0; double weightSum = 0; for (int i = 0; i < polyline.getPathCount(); i++) { Point startPoint = polyline.getPoint(polyline.getPathStart(i)); Point endPoint = polyline.getPoint(polyline.getPathEnd(i) - 1); double dx = endPoint.getX() - startPoint.getX(); double dy = endPoint.getY() - startPoint.getY(); double length = sqrt(dx * dx + dy * dy); weightSum += length; xSum += (startPoint.getX() + endPoint.getX()) * length / 2; ySum += (startPoint.getY() + endPoint.getY()) * length / 2; } return new Point(xSum / weightSum, ySum / weightSum); }
private static Point computeLineCentroid(Polyline polyline) { double xSum = 0; double ySum = 0; double weightSum = 0; for (int i = 0; i < polyline.getPathCount(); i++) { Point startPoint = polyline.getPoint(polyline.getPathStart(i)); Point endPoint = polyline.getPoint(polyline.getPathEnd(i) - 1); double dx = endPoint.getX() - startPoint.getX(); double dy = endPoint.getY() - startPoint.getY(); double length = sqrt(dx * dx + dy * dy); weightSum += length; xSum += (startPoint.getX() + endPoint.getX()) * length / 2; ySum += (startPoint.getY() + endPoint.getY()) * length / 2; } return new Point(xSum / weightSum, ySum / weightSum); }
if (!geomA.isClosedPath(pathIndex)) { int pathSize = geomA.getPathSize(pathIndex); int pathStart = geomA.getPathStart(pathIndex); if (pathSize == 0) continue;
if (!geomA.isClosedPath(pathIndex)) { int pathSize = geomA.getPathSize(pathIndex); int pathStart = geomA.getPathStart(pathIndex); if (pathSize == 0) continue;