public static double GetGreatestDistance(ICollection <AstronomicalBody> bodies, out Point middle) { double greatestDistance = 0; middle = new Point(0, 0, 0); Point pointBuffer = new Point(0, 0, 0); bodies.ToList().ForEach(b1 => { bodies.ToList().ForEach(b2 => { var currentDistance = Physics.GetDistanceBetweenPoints(b1.Center, b2.Center); if (currentDistance > greatestDistance) { greatestDistance = currentDistance; pointBuffer = Point.GetAverage(new List <Point> { b1.Center, b2.Center }); } }); }); middle = pointBuffer; return(greatestDistance); }
public static Vector GetAverage(ICollection <Vector> vectors) { List <Point> endPoints = new List <Point>(); foreach (var vector in vectors) { Point point = new Point(vector.X, vector.Y, vector.Z); endPoints.Add(point); } Point avgEndPoint = Point.GetAverage(endPoints); Vector resultingVector = new Vector(avgEndPoint); return(resultingVector); }