我正在写一个程序,生成一个多项式函数的分形。要打印结果,我使用给定的循环:
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)