我在学习Mandelbrot想写个程序测试一下。但是在计算的时候好像不太对。我把源程序贴出来。大家看看打印结果怎么不对呢。package computerGraphics;/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class MandelbrotSetTest {
    public static int pref_testNumber = 200;    public MandelbrotSetTest() {
    }    public static void main(String[] args) {
        MandelbrotSetTest test = new MandelbrotSetTest();
        test.testOnComplexPlane(0, 0, 800, 600);
    }
    public static double getSubspaceIndex(ComplexNumber constantNumber) {
        ComplexNumber startNumber = new ComplexNumber(0, 0);
        double testNumber = 0;
        while (testNumber < pref_testNumber && startNumber.magnitude() <= 2) {
            startNumber.mult(startNumber).add(constantNumber);
            testNumber++;
        }        //startNumber.debug();
        // <= 1
        return testNumber/pref_testNumber;
    }    public void testOnComplexPlane(int startX, int startY, int width, int height) {
        double real_min = -2.0;
        double real_max = 0.5;
        double image_min = - 1.25;
        double image_max = 1.25;        
        double real_increasement = (real_max - real_min) / width;
        
        double real = real_min;
        double image = image_min;
        for (int y = startY; y < height; y ++) {
            if (y > height) {
                y = 0;
            }
            for (int x = startX; x < width; x ++) {
                if (x > width) {
                    break;
                }
                double subspaceIndex = getSubspaceIndex(ComplexNumber.valueOf(real, image));
                real += real_increasement;
                System.out.println("x = " + x + ", y = " + y + ", subspaceIndex = " + subspaceIndex);
                //paintPixel(x, y, color);
            }
            image += real_increasement;
        }
    }
}
package computerGraphics;/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class ComplexNumber {
    private double real;
    private double image;
    private static ComplexNumber complexNumber = new ComplexNumber(0, 0);    public ComplexNumber(double param_real, double param_image) {
        real = param_real;
        image = param_image;
    }    public static ComplexNumber valueOf(double param_real, double param_image) {
        complexNumber.setReal(param_real);
        complexNumber.setImage(param_image);
        return complexNumber;
    }    public ComplexNumber mult(ComplexNumber another) {
        real = real * another.real - image * another.image;
        image = real * another.image + image * another.real;
        return this;
    }    public ComplexNumber add(ComplexNumber another) {
        real = real + another.real;
        image = image + another.image;
        return this;
    }    public double magnitude() {
        return Math.sqrt(real * real + image * image);
    }    public void debug() {
        System.out.println("real = " + real + ", image = " + image + ", magnitude = " + magnitude());
    }    public double getImage() {
        return image;
    }    public double getReal() {
        return real;
    }    public void setImage(double image) {
        this.image = image;
    }    public void setReal(double real) {
        this.real = real;
    }
}