Java Geometry Algorithm computeBarycenter(Map values)

Here you can find the source of computeBarycenter(Map values)

Description

compute Barycenter

License

Open Source License

Declaration

static Point2D computeBarycenter(Map<Point2D, Double> values) 

Method Source Code


//package com.java2s;
/*/*from w  w  w  .  ja v  a 2  s .c  o  m*/
 * Copyright (C) 2006-2011 by Olivier Chafik (http://ochafik.com)
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

import java.awt.geom.Point2D;

import java.util.Map;

public class Main {
    static Point2D computeBarycenter(Map<Point2D, Double> values) {
        double x = 0, y = 0;
        for (Map.Entry<Point2D, Double> e : values.entrySet()) {
            Point2D point = e.getKey();
            double value = e.getValue();
            x += value * point.getX();
            y += value * point.getY();
        }
        int size = values.size();
        return new Point2D.Double(x / size, y / size);
    }
}

Related

  1. clacGradient(Point2D p1, Point2D p2, Point2D p3)
  2. cleanList(List blueList, Polygon borders)
  3. colinearPoint(Line2D line, Point2D point, double distance)
  4. computeAngleDEG(@Nonnull Point2D p1, @Nonnull Point2D p2)
  5. computeAngleRAD(@Nonnull Point2D p)
  6. computeEuclideanDistance(Point2D point1, Point2D point2)
  7. computePolygonArea(Point2D[] pts)
  8. coordinateSplit(Point2D.Double[] aPoints, double[] aX, double[] aY)
  9. cornersToWorldFile(Point2D[] esq, Dimension size)