public static double GetDistance(Sign el1, Sign el2)
        {
            int sf2 = (el2.SignForm - el1.SignForm) * (el2.SignForm - el1.SignForm);
            double rc2 = Math.Pow(el2.RedColor - el1.RedColor, 2);
            double bc2 = Math.Pow(el2.BlueColor - el1.BlueColor, 2);
            double whc2 = Math.Pow(el2.WhiteColor - el1.WhiteColor, 2);
            double yc2 = Math.Pow(el2.YellowColor - el1.YellowColor, 2);

            return Math.Sqrt(sf2 + rc2 + bc2 + whc2 + yc2);
        }
 public int ClassifyElement(Sign sign)
 {
     double min = double.MaxValue;
     Cluster cluster = ClusterList[0];
     foreach (Cluster s in ClusterList)
     {
         double dist = s.GetDistanceToCenter(sign);
         if (dist <= min)
         {
             min = dist;
             cluster = s;
         }
     }
     return cluster.Number;
 }
 public int FindClass(Sign sign)
 {
     return(_classifier.ClassifyElement(sign));
 }
 public double GetDistanceToCenter(Sign element)
 {
     return(Sign.GetDistance(Center, element));
 }
 public Cluster(Sign center, int number)
 {
     Center      = center;
     ElementList = new List <Sign>();
     Number      = number;
 }
 public int FindClass(Sign sign)
 {
     return _classifier.ClassifyElement(sign);
 }