Пример #1
0
        public void modulo()
        {
            Complexe a   = new Complexe(9, 0);
            double   mod = a.modulo();

            Assert.AreEqual(mod, 9);
        }
Пример #2
0
        public void Sqrt()
        {
            Complexe a = new Complexe(5, 10);

            a.Sqrt();

            Assert.AreEqual(a.re, -75);
            Assert.AreEqual(a.im, 100);
        }
Пример #3
0
        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);
        }
Пример #4
0
        /// <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);
                    }
                }
            }
        }
Пример #5
0
        /// <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);
                    }
                }
            }
        }
Пример #6
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;
 }