private void SetNetworkGridColors()
 {
     for (int i = 0; i < NetworkParameters.CohonenNetworkNodes.GetLength(0); i++)
     {
         for (int j = 0; j < NetworkParameters.CohonenNetworkNodes.GetLength(1); j++)
         {
             double[] nodeWeidghts = NetworkParameters.CohonenNetworkNodes[i, j].GetNodeWeights();
             var scaledColor = new ScaledColor(nodeWeidghts[0], nodeWeidghts[1], nodeWeidghts[2]);
             Color color = scaledColor.ConvertScaledColorToColor();
             _gridViewService.SetCellColor(i, j, color);
         }
     }
 }
        private Tuple<Point, double[]> CulculateBestMatchingUnit(Color color)
        {
            var bestMatchingUnitCoordinates = new Point();
            var scaledColor = new ScaledColor(color);
            double[] colorsArray = scaledColor.ConvertColorsToArray();

            double lowestDistance = double.MaxValue;

            for (int i = 0; i < NetworkParameters.CohonenNetworkNodes.GetLength(0); i++)
            {
                for (int j = 0; j < NetworkParameters.CohonenNetworkNodes.GetLength(1); j++)
                {
                    double distance = NetworkParameters.CohonenNetworkNodes[i, j]
                        .GetEuclideanDistance(colorsArray);

                    if (!(distance < lowestDistance))
                    {
                        continue;
                    }

                    lowestDistance = distance;
                    bestMatchingUnitCoordinates = new Point(i, j);
                }
            }

            return new Tuple<Point, double[]>(bestMatchingUnitCoordinates, colorsArray);
        }