/*
* Copyright (C) 2011-2015, Peter Abeles. All Rights Reserved.
*
* This file is part of Geometric Regression Library (GeoRegression).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package georegression.geometry;
import georegression.struct.point.Point2D_I32;
import java.util.List;
/**
*
*
*/
public class UtilPoint2D_I32 {
public static double distance( Point2D_I32 a , Point2D_I32 b ) {
int dx = b.x - a.x;
int dy = b.y - a.y;
return Math.sqrt( dx * dx + dy * dy );
}
public static int distanceSq( Point2D_I32 a , Point2D_I32 b ) {
int dx = b.x - a.x;
int dy = b.y - a.y;
return dx * dx + dy * dy;
}
public static double distance( int x0, int y0, int x1, int y1 ) {
int dx = x1 - x0;
int dy = y1 - y0;
return Math.sqrt( dx * dx + dy * dy );
}
public static int distanceSq( int x0, int y0, int x1, int y1 ) {
int dx = x1 - x0;
int dy = y1 - y0;
return dx * dx + dy * dy;
}
/**
* Finds the point which has the mean location of all the points in the list. This is also known
* as the centroid.
*
* @param list List of points
* @param mean Storage for mean point. If null then a new instance will be declared
* @return The found mean
*/
public static Point2D_I32 mean(List<Point2D_I32> list, Point2D_I32 mean) {
if( mean == null )
mean = new Point2D_I32();
int sumX = 0, sumY = 0;
int N = list.size();
for( int i = 0; i < N; i++ ) {
Point2D_I32 p = list.get(i);
sumX += p.x;
sumY += p.y;
}
mean.x = sumX/N;
mean.y = sumY/N;
return mean;
}
}