/// <summary> /// Permet de faire une fractale de Julia differente possiblité d'image graàce à cette fractale /// </summary> /// <param name="a">l'image qu'on va venir transformer </param> /// <param name="c1">valeur modifiable afin de changer le rendu de l'image</param> /// <param name="c2">valeur modifiable afin de changer le rendu de l'image</param> public void FractaledeJulia(MyImage a, double c1, double c2) { a.FractaledeMandelBroot(); for (int x = 0; x < a.matRGB.GetLength(0); x++) { for (int y = 0; y < a.matRGB.GetLength(1); y++) { double Re = Convert.ToDouble((x - (a.matRGB.GetLength(0) / 2)) / Convert.ToDouble(a.matRGB.GetLength(0) / 4)); double Im = Convert.ToDouble((y - (a.matRGB.GetLength(1) / 2)) / Convert.ToDouble(a.matRGB.GetLength(1) / 4)); int i = 0; Complexe z = new Complexe(Re, Im); while (i < 100) { double RE2 = z.re * z.re; double IM2 = z.im * z.im; double REIM = 2.0 * z.re * z.im; z.re = RE2 - IM2 + c1; z.im = REIM + c2; if (RE2 * RE2 + IM2 * IM2 > 2) { break; } i++; } if (i < 100) { a.matRGB[x, y] = new Pixel(255 * i / 100, 12 * i / 100, 105 * i / 100); } else { a.matRGB[x, y] = new Pixel(150, 125, 255); } } } }
static void SousMenu3(MyImage a) { Console.WriteLine("Menu Fractale"); Console.WriteLine("1 - Fractale de MandelBroot"); Console.WriteLine("2 - Fractale de Julia"); Console.WriteLine("3 - Histogramme"); Console.WriteLine("4 - Coder une image dans une autre"); Console.WriteLine("5 - Coder puis decoder une image (qu'on vient d'encoder dans une autre)"); string check = Convert.ToString(Console.ReadLine()); int n = 0; bool verif = int.TryParse(check, out n); while ((n != 1 && n != 2 && n != 3 && n != 4 && n != 5) || (verif != true)) { Console.WriteLine("Veuillez saisir soit 1 ou 2 ou 3"); check = Convert.ToString(Console.ReadLine()); verif = int.TryParse(check, out n); } switch (n) { case 1: a.FractaledeMandelBroot(); break; case 2: Console.WriteLine("3 Fractale de Julia differente possible:\n 1- etoile, \n 2- fleche \n 3- éclair "); check = Convert.ToString(Console.ReadLine()); n = 0; verif = int.TryParse(check, out n); while ((n != 1 && n != 2 && n != 3) || (verif != true)) { Console.WriteLine("Veuillez saisir soit 1 ou 2 ou 3"); check = Convert.ToString(Console.ReadLine()); verif = int.TryParse(check, out n); } switch (n) { case 1: a.FractaledeJulia(a, -0.70176, -0.3842); break; case 2: a.FractaledeJulia(a, -0.8, 0.156); break; case 3: a.FractaledeJulia(a, 0, 0.8); break; default: break; } break; case 3: a.Histogramme(); break; case 4: Console.WriteLine("choisissez la photo a cacher dedans avec .bmp : \n 1 - lena.bmp \n 2 - coco.bmp \n 3 - lac.bmp"); check = Convert.ToString(Console.ReadLine()); n = 0; verif = int.TryParse(check, out n); while ((n != 1 && n != 2 && n != 3) || (verif != true)) { Console.WriteLine("Veuillez saisir soit 1 ou 2 ou 3"); check = Convert.ToString(Console.ReadLine()); verif = int.TryParse(check, out n); } switch (n) { case 1: Bitmap Im = new Bitmap("lena.bmp"); Im.Save("Imageacacher.bmp"); MyImage Im1 = new MyImage("Imageacacher.bmp"); a.ImageCache(Im1); break; case 2: Im = new Bitmap("coco.bmp"); Im.Save("Imageacacher.bmp"); Im1 = new MyImage("Imageacacher.bmp"); a.ImageCache(Im1); break; case 3: Im = new Bitmap("lac.bmp"); Im.Save("Imageacacher.bmp"); Im1 = new MyImage("Imageacacher.bmp"); a.ImageCache(Im1); break; default: break; } break; case 5: Console.WriteLine("choisissez la photo a cacher dedans avec .bmp puis qui sera redecoder dans la foulée : \n 1 - lena.bmp \n 2 - coco.bmp \n 3 - lac.bmp"); check = Convert.ToString(Console.ReadLine()); n = 0; verif = int.TryParse(check, out n); while ((n != 1 && n != 2 && n != 3) || (verif != true)) { Console.WriteLine("Veuillez saisir soit 1 ou 2 ou 3"); check = Convert.ToString(Console.ReadLine()); verif = int.TryParse(check, out n); } switch (n) { case 1: Bitmap Im = new Bitmap("lena.bmp"); Im.Save("Imageacacher.bmp"); MyImage Im1 = new MyImage("Imageacacher.bmp"); a.ImageCoderetDecoder(Im1); break; case 2: Im = new Bitmap("coco.bmp"); Im.Save("Imageacacher.bmp"); Im1 = new MyImage("Imageacacher.bmp"); a.ImageCoderetDecoder(Im1); break; case 3: Im = new Bitmap("lac.bmp"); Im.Save("Imageacacher.bmp"); Im1 = new MyImage("Imageacacher.bmp"); a.ImageCoderetDecoder(Im1); break; default: break; } break; } }