public void modulo() { Complexe a = new Complexe(9, 0); double mod = a.modulo(); Assert.AreEqual(mod, 9); }
public void Sqrt() { Complexe a = new Complexe(5, 10); a.Sqrt(); Assert.AreEqual(a.re, -75); Assert.AreEqual(a.im, 100); }
public void Add() { Complexe a = new Complexe(10, 5); Complexe z = new Complexe(15, 20); Complexe verif = new Complexe(25, 25); a.Add(z); Assert.AreEqual(verif.re, a.re); Assert.AreEqual(verif.im, a.im); }
/// <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); } } } }
/// <summary> /// Permet de faire une Fractale de Mandel Broot a partir d'une image /// </summary> public void FractaledeMandelBroot() { for (int x = 0; x < matRGB.GetLength(0); x++) { for (int y = 0; y < matRGB.GetLength(1); y++) { double Re = Convert.ToDouble((x - (matRGB.GetLength(0) / 2)) / Convert.ToDouble(matRGB.GetLength(0) / 4)); double Im = Convert.ToDouble((y - (matRGB.GetLength(1) / 2)) / Convert.ToDouble(matRGB.GetLength(1) / 4)); int i = 0; Complexe z = new Complexe(0, 0); Complexe c = new Complexe(Re, Im); while (i < 100) { z.Sqrt(); z.Add(c); if (z.modulo() > 2) { break; } i++; } if (i < 100) { matRGB[x, y] = new Pixel(255 * i / 100, 255 * i / 100, 240 * i / 100); } else { matRGB[x, y] = new Pixel(0, 0, 0); } } } }
/// <summary> /// Fonction permettant d'ajoute run nobmre complexe à un autre /// </summary> /// <param name="z"></param> public void Add(Complexe z) { Re = Re + z.Re; Im = Im + z.Im; }