我正在写一个程序,生成一个多项式函数的分形。要打印结果,我使用给定的循环:

double xmin = xcenter - sizex/2;
double ymin = ycenter -  sizey/2;
double width = sizex;
double height = sizey;

for(int i=0; i < M; i++){
        for(int j=0; j < N; j++){

            double a = xmin + i * width/M;
            double b = ymin + j * height/N;

            Complex z = new Complex(a, b);
            // Call of the method that return me a color c
            pic.set(i, j, c);
        }
}

pic对象是一个类图片的对象,方法集将像素i,j的颜色设置为c(这个类的一切都是正确的)。
我希望右上角有坐标(xcenter+sizex/2,ycenter+sizey/2)
将此函数调用到根在0,0和3,3中的复杂函数,这是当xcenter=ycenter=0和sizex=sizey=6时得到的结果
您可以检查中心点是否变暗(它是0,0),另一个较暗的点应该在右上角(它应该是3,3),但它处于(3,-3)状态将此方法调用根(-3,-3),我可以检查y轴是否也反转。
这是由我的函数计算的最后一个点,它收敛到的根在下面(如您所见,方法是正确的)
2.991428571428571+2.9485714285714284i:
3.0+3.0英寸
2.991428571428571+2.9571428571428573i:5
3.0+3.0英寸
2.991428571428571+2.9657142857142853i:4
3.0+3.0英寸
2.991428571428571+2.974285714285714i:4
3.0+3.0英寸
2.991428571428571+2.982857142857143I:4
3.0+3.0英寸
2.991428571428571+2.991428571428571i:4
这个回路怎么了?

最佳答案

计算机屏幕和图像的右上角点是(0,0)位置,这是文本屏幕的时间,其中第一行第一个字符在左上角位置。
因此使用

        double a = xmin + i * width/M;
        double b = ymax - j * height/N;

屏幕/图片位置(i,j)

09-26 23:23