BobBob123 0 Newbie Poster

im recieving no erors but when im running it im also unable to see the mandelbrot it just displays the grey box, i understand there are other threads on this and i have attempted to use them but im currently stuck at this one point thanks for any help.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Drawing2D;



namespace SE_Fractal_Assignment
{

    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();

        }





        public struct HSBColor
        {
            float h;
            float s;
            float b;
            int a;


            public HSBColor(float h, float s, float b)
            {
                this.a = 0xff;
                this.h = Math.Min(Math.Max(h, 0), 255);
                this.s = Math.Min(Math.Max(h, 0), 255);
                this.b = Math.Min(Math.Max(h, 0), 255);
            }

            public float H
            {
                get { return h; }
            }

            public float S
            {
                get { return s; }
            }

            public float B
            {
                get { return b; }
            }

            public int A
            {
                get { return a; }
            }

            public Color Color
            {
                get
                {
                    return FromHSB(this);
                }
            }

            public static Color FromHSB(HSBColor hsbColor)
            {
                float r = hsbColor.b;
                float g = hsbColor.b;
                float b = hsbColor.b;
                if (hsbColor.s != 0)
                {
                    float max = hsbColor.b;
                    float dif = hsbColor.b * hsbColor.s / 255f;
                    float min = hsbColor.b - dif;

                    float h = hsbColor.h * 360f / 255f;

                    if (h < 60f)
                    {
                        r = max;
                        g = h * dif / 60f + min;
                        b = min;
                    }
                    else if (h < 120f)
                    {
                        r = -(h - 120f) * dif / 60f + min;
                        g = max;
                        b = min;
                    }
                    else if (h < 180f)
                    {
                        r = min;
                        g = max;
                        b = -(h - 120f) * dif / 60f + min;
                    }
                    else if (h < 240f)
                    {
                        r = min;
                        g = -(h - 240f) * dif / 60f + min;
                        b = max;
                    }
                    else if (h < 300f)
                    {
                        r = -(h - 240f) * dif / 60f + min;
                        g = min;
                        b = max;
                    }
                    else if (h <= 360f)
                    {
                        r = max;
                        g = min;
                        b = -(h - 360f) * dif / 60f + min;
                    }
                    else
                    {
                        r = 0;
                        g = 0;
                        b = 0;
                    }
                }

                return Color.FromArgb
                (
                    hsbColor.a,
                    (int)Math.Round(Math.Min(Math.Max(r, 0), 255)),
                    (int)Math.Round(Math.Min(Math.Max(g, 0), 255)),
                    (int)Math.Round(Math.Min(Math.Max(b, 0), 255))
                    );
            }


            }

            private const int MAX = 256;         // max iterations
            private const double SX = -2.025;    // start value goal
            private const double SY = -1.125;    // start value imaginary
            private const double EX = 0.6;       // end value real
            private const double EY = 1.125;     // end value imaginary
            private static int x1, y1, xs, ys, xe, ye;
            private static double xstart, ystart, xende, yende, xzoom, yzoom;
            private static bool action, rectangle, finished;
            private static float xy;


            //private Image picture1;
            private System.Drawing.Bitmap bitmap;

            private Graphics g1;
            private Cursor c1, c2;
            private HSBColor HSBcol = new HSBColor();


            // private HSB HSBcol = new HSB();

        private void Form1_Paint(object sender, PaintEventArgs e)
        {


            g1 = e.Graphics;

            g1.DrawImage(bitmap, 0, 0, x1, y1);

            g1.Dispose();

        }


        private void Form1_Load(object sender, EventArgs e)
        {

            init();
            start();

        }

            public void init()
            {


                //HSBcol = new HSB();
                finished = false;
                c1 = Cursors.WaitCursor;
                c2 = Cursors.Cross;

                x1 = 640;
                y1 = 480;

                xy = (float)x1 / (float)y1;

                bitmap.SetPixel(x1, y1, Color.Blue);
                g1 = Graphics.FromImage(bitmap);

                finished = true;


                // xy = (float)x1 / (float)y1;
                //picture = createImage(x1, y1); 
                //g1 = picture.getGraphics();

            }

            public void destroy() // delete all instances 
            {
                if (finished)
                {
                    //removeMouseListener(this);
                    //removeMouseMotionListener(this);

                    //bitmap = null;

                    g1 = null;
                    c1 = null;
                    c2 = null;

                    //System.gc(); // garbage collection

                    GC.Collect();
                }
            }

            public void start()
            {
                action = false;
                rectangle = false;

                initvalues();

                xzoom = (xende - xstart) / (double)x1;
                yzoom = (yende - ystart) / (double)y1;

                mandelbrot();
            }

            public void stop()
            {
            }


            public void paint(Graphics g)
            {
                update(g); 
            }


            public void update(Graphics g)
            {

              /*  Pen myPen = new Pen(Color.White);

                g.DrawImage(bitmap, 0, 0);


                if (rectangle)
                {


                    if (xs < xe)
                    {
                        if (ys < ye)
                        {
                            g.DrawRectangle(myPen, xs, ys, (xe - xs), (ye - ys));
                        }
                    }

                    else
                    {
                        g.DrawRectangle(myPen, xs, ys, (xe - xs), (ye - ys));
                    }
                    myPen.Dispose();


                }*/
            }


            private void mandelbrot() // calculate all points
            {
                int x, y;
                float h, b, alt = 0.0f;

                action = false;
                for (x = 0; x < x1; x += 2)
                    for (y = 0; y < y1; y++)
                    {
                        h = pointcolour(xstart + xzoom * (double)x, ystart + yzoom * (double)y);
                        // color value

                        if (h != alt)
                        {
                            b = 1.0f - h * h; // brightnes

                            ///djm added

                            ///HSBcol.fromHSB(h,0.8f,b); 
                            ///
                            //convert hsb to rgb then make a Java Color

                            Color color = HSBColor.FromHSB(new HSBColor(h * 255, 0.8f * 255, b * 255));


                            ///g1.setColor(col);
                            //djm end
                            //djm added to convert to RGB from HSB

                            //g1.setColor(Color.getHSBColor(h, 0.8f, b));

                            //djm test

                          //  Color col = Color.FromArgb(0, 0, 0, 0);

                            //red = Color.Red;
                            // green = Color.Green;
                            // blue = Color.Blue;

                            //djm 
                            alt = h;
                        }
                        Pen pen = new Pen(Color.Aqua);
                        g1.DrawLine(pen, x, y, x + 1, y);
                    }
                //showStatus("Mandelbrot-Set ready - please select zoom area with pressed mouse.");

                //setCursor(c2);


                action = true;
            }

            private float pointcolour(double xwert, double ywert)
            // color value from 0.0 to 1.0 by iterations
            {
                double r = 0.0, i = 0.0, m = 0.0;
                int j = 0;

                while ((j < MAX) && (m < 4.0))
                {
                    j++;
                    m = r * r - i * i;
                    i = 2.0 * r * i + ywert;
                    r = m + xwert;
                }
                return (float)j / (float)MAX;
            }

            private void initvalues() // reset start values
            {
                xstart = SX;
                ystart = SY;
                xende = EX;
                yende = EY;
                if ((float)((xende - xstart) / (yende - ystart)) != xy)
                    xstart = xende - (yende - ystart) * (double)xy;
            }


            private void Form1_paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;

                g1 = g;
                action = false;
                rectangle = false;
                initvalues();
                xzoom = (xende - xstart) / (double)x1;
                yzoom = (yende - ystart) / (double)y1;

                //picture = g.DrawImage;

                //g.DrawImage(picture,0,0);
                update(g);
                mandelbrot();



            }

            private void Form1_MouseDown(object sender, MouseEventArgs e)
            {



                if (action)
                {

                    xs = e.X;
                    ys = e.Y;
                }


            }

            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                // e.consume();
                if (action)
                {
                    xe = e.X;
                    ye = e.Y;
                    rectangle = true;
                    //repaint();


                }

            }


            private void Form1_MouseUp(object sender, MouseEventArgs e)
            {
                rectangle = false;
            }

            private void Form1_Click(object sender, MouseEventArgs e)
            {

            }


            public String getAppletInfo()
            {
                return "fractal.class - Mandelbrot Set a Java Applet by Eckhard Roessel 2000-2001";
            }
        }
    }
Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.19 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.