Система координат панелей в c #? - PullRequest
0 голосов
/ 01 октября 2018

Я очень новичок в c # и столкнулся с проблемой при попытке запрограммировать и визуализировать Mandelbrotset.

Я создал панель 400 на 400 и хочу использовать ее для построения графика набора.Я хочу, чтобы график менялся от -2 до 2 по обеим осям, поэтому я использую шкалу 0,01.Глядя на мой код, я думаю, что метод рисования должен работать;координаты конвертируются правильно, как кажется.Проблема в том, что график не полностью отображается на панели во время работы.(0,0) находится где-то в нижнем правом углу, удаляя большую часть координат в этом углу.

Ниже приведена функция, используемая для рисования графика на панели.Я сделал ошибку в кодировании координат таким образом?Или я неправильно понимаю, как работают координаты на панели?

        for (int xco =0; xco<400; xco++)
        {
            for (int yco=0; yco<400; yco++)
            {
                double x = (xco - 200) * scale;
                double y = (yco - 200) * scale;
                int mandel = 0;
                double fx = x, fy = y;
                double distance = 0;
                while ((mandel<max) && (distance<2))
                {
                    double fx1 = fx;      
                    fx = fx * fx - fy * fy + x;
                    fy = 2 * fx1 * fy + y;
                    distance = Math.Sqrt(fx * fx + fy * fy);
                    mandel++;
                }
                if (mandel%2==1)
                    pea.Graphics.FillRectangle(Brushes.White, xco, yco, xco + 1, yco + 1);
                else
                    pea.Graphics.FillRectangle(Brushes.Black, xco, yco, xco + 1, yco + 1);
            }
        }
...