c#中的面板坐标系?

时间:2018-10-01 08:07:10

标签: c# panel mandelbrot

我对C#还是很陌生,在尝试对Mandelbrotset进行编程和可视化时遇到了问题。

我创建了一个400 x 400的面板,并希望使用它来绘制集合。我希望图形在两个轴上都从-2变为2,所以我使用的比例是0.01。查看代码时,我认为paint方法应该可以工作;坐标以看起来正确的方式转换。问题在于,运行时图形未完全显示在面板上。 (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);
            }
        }

0 个答案:

没有答案