Ejemplo n.º 1
0
        private void RenderScene()
        {
            if (!w_fractal && !w2_fractal)
            {
                InitGL();
            }

            #region Constructed Fractals
            if (radioButton3.Checked && s_fractal)
            {
                //Draw Harter Dragon

                HarterDragon.SetColor(0, 255, 0);
                HarterDragon.Draw(0.2, 0.5, depth_counter);
                label3.Text = "2";
                //s_fractal = false;
            }
            if (radioButton2.Checked && s_fractal)
            {
                //Draw Minkovsky square
                int current_depth_counter = depth_counter;
                if (depth_counter >= 7)
                {
                    current_depth_counter = 6;
                }
                MinkovskySquare.SetColor(255, 0, 0);
                MinkovskySquare.Draw(0.25, 0.25, current_depth_counter);
                label3.Text = "3/4";
                //s_fractal = false;
            }
            if (radioButton4.Checked && s_fractal)
            {
                //Draw Square with holes
                int current_depth_counter = depth_counter;
                if (depth_counter >= 7)
                {
                    current_depth_counter = 7;
                }
                SquareCutted.SetColor(100, 100, 0);
                SquareCutted.Draw(0.05, 0.05, current_depth_counter);
                label3.Text = "2";
                //s_fractal = false;
            }
            if (radioButton1.Checked && s_fractal)
            {
                //Draw Serpinsky carpet
                int current_depth_counter = depth_counter;
                if (depth_counter >= 7)
                {
                    current_depth_counter = 7;
                }
                SerpinskyCarpet.SetColor(0, 80, 255);
                SerpinskyCarpet.Draw(0.2, 0.2, 0.6, current_depth_counter, 1);

                label3.Text = "log(8)/log(3)";
                //s_fractal = false;
            }
            if (radioButton6.Checked && s_fractal)
            {
                //Draw Koch Curve
                int current_depth_counter = depth_counter;
                if (depth_counter >= 7)
                {
                    current_depth_counter = 7;
                }
                KochCurve.SetColor(0, 60, 255);
                KochCurve.Draw(0.05, 0.5, current_depth_counter);
                label3.Text = "log(4)/log(3)";
                //s_fractal = false;
            }
            #endregion

            #region ISF Fractals
            if (radioButton5.Checked && i_fractal)
            {
                //Draw IFS Fern

                Fern.SetColor(0.0, 1.0, 0.12);
                Fern.Draw(0.5, 0.0, 0.095, iterations);
                //i_fractal = false;
            }
            if (radioButton7.Checked && i_fractal)
            {
                w_fractal  = true;
                i_fractal  = false;
                w2_fractal = false;
            }
            if (radioButton8.Checked && i_fractal)
            {
                //Draw IFS Cobweb
                Cobweb.SetColor(0.1, 0.65, 0.75);
                Cobweb.Draw(0.5, 0.5, 0.25, iterations);
                //i_fractal = false;
            }
            if (radioButton9.Checked && i_fractal)
            {
                //Draw IFS Dragon
                Dragon.SetColor(0.98, 0.55, 0.1);
                Dragon.Draw(0.5, 0.1, 0.08, iterations);
                //i_fractal = false;
            }
            if (radioButton10.Checked && i_fractal)
            {
                //Draw IFS Star
                Star.SetColor(0.76, 0.5, 0.89);
                Star.Draw(0.05, 0.5, 0.5, iterations);
                //i_fractal = false;
            }
            if (radioButton11.Checked && i_fractal)
            {
                //Spiral with wind code

                //Draw IFS Spiral
                //Spiral.SetColor(0.99, 0.1, 0.2);
                //Spiral.Draw(0.45, 0.5, 0.5, iterations);
                w2_fractal = true;
                i_fractal  = false;
                w_fractal  = false;
            }
            #endregion

            #region Julia
            if (radioButton12.Checked && j_fractal)
            {
                //z^2+C
                JuliaSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                JuliaSet.SetConstant(rec, imc);
                JuliaSet.Draw(details, details, 1, scheme);
                label3.Text = "2";
                //j_fractal = false;
            }
            if (radioButton13.Checked && j_fractal)
            {
                //z^3+C
                JuliaSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                JuliaSet.SetConstant(rec, imc);
                JuliaSet.Draw(details, details, 2, scheme);
                label3.Text = "2";
                //j_fractal = false;
            }
            if (radioButton14.Checked && j_fractal)
            {
                //z^4+C
                JuliaSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                JuliaSet.SetConstant(rec, imc);
                JuliaSet.Draw(details, details, 3, scheme);
                label3.Text = "2";
                //j_fractal = false;
            }
            if (radioButton15.Checked && j_fractal)
            {
                //z^3+Cz
                JuliaSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                JuliaSet.SetConstant(rec, imc);
                JuliaSet.Draw(details, details, 4, scheme);
                label3.Text = "2";
                //j_fractal = false;
            }
            if (radioButton16.Checked && j_fractal)
            {
                //sin(z)+c
                JuliaSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                JuliaSet.SetConstant(rec, imc);
                JuliaSet.Draw(details, details, 5, scheme);
                label3.Text = "2";
                //j_fractal = false;
            }
            if (radioButton17.Checked && j_fractal)
            {
                //e^z+c
                JuliaSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                JuliaSet.SetConstant(rec, imc);
                JuliaSet.Draw(details, details, 6, scheme);
                label3.Text = "2";
                //j_fractal = false;
            }
            #endregion

            #region Mandelbrot
            if (radioButton12.Checked && m_fractal)
            {
                //z^2+C
                ManSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                ManSet.SetConstant(rec, imc);
                ManSet.Draw(details, details, 1, scheme);
                label3.Text = "bounders 2";
                //m_fractal = false;
            }
            if (radioButton13.Checked && m_fractal)
            {
                //z^3+C
                ManSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                ManSet.SetConstant(rec, imc);
                ManSet.Draw(details, details, 2, scheme);
                label3.Text = "bounders 2";
                //m_fractal = false;
            }
            if (radioButton14.Checked && m_fractal)
            {
                //z^4+C
                ManSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                ManSet.SetConstant(rec, imc);
                ManSet.Draw(details, details, 3, scheme);
                label3.Text = "bounders 2";
                //m_fractal = false;
            }
            if (radioButton15.Checked && m_fractal)
            {
                //z^3+Cz
                ManSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                ManSet.SetConstant(rec, imc);
                ManSet.Draw(details, details, 4, scheme);
                label3.Text = "bounders 2";
                //m_fractal = false;
            }
            if (radioButton16.Checked && m_fractal)
            {
                //sin(z)+c
                ManSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                ManSet.SetConstant(rec, imc);
                ManSet.Draw(details, details, 5, scheme);
                label3.Text = "bounders 2";
                //m_fractal = false;
            }
            if (radioButton17.Checked && m_fractal)
            {
                //e^z+c
                ManSet.SetBorders(minx, maxx, miny, maxy, jmiterations);
                ManSet.SetConstant(rec, imc);
                ManSet.Draw(details, details, 6, scheme);
                label3.Text = "bounders 2";
                //m_fractal = false;
            }
            #endregion
            Gl.glFlush();
        }
Ejemplo n.º 2
0
        private void DrawJulia()
        {
            Julia fr = new Julia(Domain);

            fr.Draw(img, Jp, Jq);
        }