// method for calculating euclidean distances
        public double EuclideanDistance(DataClass.DataPoint point, ClusterClass.ClusterCenter center)
        {
            double distance = 0;
            double a        = point.CoordX - center.CoordX;
            double b        = point.CoordY - center.CoordY;

            distance = Math.Sqrt((Math.Pow(a, 2)) + (Math.Pow(b, 2)));
            return(distance);
        }
        // update step of algorithm
        public void UpdateStep()
        {
            DataClass.NumberOfDataPoints  = DataClass.Data.Count;
            ClusterClass.NumberOfClusters = ClusterClass.Cluster.Count;
            int CentersNotChanged = 0;

            for (int i = 0; i < ClusterClass.NumberOfClusters; i++)
            {
                double NewCoordX = 0;
                double NewCoordY = 0;

                var ClusterMembers =
                    from a in Assignments
                    where a.Value.ID == ClusterClass.Cluster[i].ID
                    select a.Key;

                foreach (var cm in ClusterMembers)
                {
                    NewCoordX = NewCoordX + cm.CoordX;
                    NewCoordY = NewCoordY + cm.CoordY;
                }

                int ClusterSize = ClusterMembers.Count();
                NewCoordX = NewCoordX / ClusterSize;
                NewCoordY = NewCoordY / ClusterSize;

                if (NewCoordX == ClusterClass.Cluster[i].CoordX && NewCoordY == ClusterClass.Cluster[i].CoordY)
                {
                    CentersNotChanged = CentersNotChanged + 1;
                }
                else
                {
                    ClusterClass.ClusterCenter center = ClusterClass.Cluster[i];
                    center.ID               = i;
                    center.CoordX           = NewCoordX;
                    center.CoordY           = NewCoordY;
                    ClusterClass.Cluster[i] = center;
                }
            }

            if (CentersNotChanged == ClusterClass.NumberOfClusters)
            {
                StopAlgorithm = true;
            }
            else
            {
                StopAlgorithm = false;
            }
        }