private static void CreateDistanceImage(int[,] map) { var image = new Bitmap(map.GetLength(0), map.GetLength(1)); for (var x = 0; x < map.GetLength(0); x++) { for (var y = 0; y < map.GetLength(1); y++) { var val = map[x, y]; Color color; if (val == -2) { color = Color.Black; } else if (val <= 10000) { color = Color.Green; } else { color = ColorRGB.FromHSL(1.0, 1.0, Math.Clamp(map[x, y] / 20000d, 0.0, 1.0)); } image.SetPixel(x, y, color); } } image.Save("distance_map.bmp"); }
private static void CreateVektorImage(int[,] map, Vektor biggestVektor) { var image = new Bitmap(map.GetLength(0), map.GetLength(1)); for (var x = 0; x < map.GetLength(0); x++) { for (var y = 0; y < map.GetLength(1); y++) { var val = map[x, y]; Color color; if (val == -2) { color = Color.Black; } else if (val == -1) { color = Color.White; } else if (val == biggestVektor.Index) { color = Color.Red; } else { color = ColorRGB.FromHSL(val / 60d, 1.0, .5); } image.SetPixel(x, y, color); } } image.Save("vektor_map.bmp"); }
/// <summary> /// Initialise la liste des couleurs /// </summary> private void InitializeColorList() { //Entier de granularité : indique le nombre de couleur qui sera introduite dans la grille à partir de toute la gamme possible int colorGranularity = 50; for (int i = 0; i < colorGranularity; i++) //On crée un certain nombre de couleur { //Création d'une couleur à partir de la teinte: // Teinte: 1.0 / colorGranularity * i : la teinte doit être entrée en % dans la classe ColorRGB (0->1). On crée des paliers qui vont de 0->1 en fonction de colorGranularity // Saturation : 1 : Couleur vive // Luminosité : 0.5 : Couleur moyenne entre noir et blanc (luminosité 0->noir, luminosité 1->blanc) ColorRGB colorRGB = ColorRGB.FromHSL(1.0 / colorGranularity * i, 1, 0.5); SolidColorBrush brush = new SolidColorBrush(colorRGB); //Création du pinceau représentant une couleur this.colorBrushes.Add(brush); //Ajout de ce pinceau à la liste } }