1

の範囲内でマンデルブロ集合の値を生成する関数があります[0-255]。計算後、同じく 256 個の値を持つ、事前に生成されたパレットを使用して結果をペイントします。

計算:

int MAX = 255;

private int calculateMandel(double positionX, double positionY) {
        int valueOne = 0;
        double complexReal = 0.0;
        double complexImaginery = 0.0;
        double complexRealSquare = 0.0;
        double complexImaginerySquare = 0.0;

        while (valueOne < MAX && complexRealSquare + complexImaginerySquare < 4.0) {
            complexImaginery = 2.0 * complexReal * complexImaginery + positionY;
            complexReal = complexRealSquare - complexImaginerySquare + positionX;
            complexRealSquare = complexReal * complexReal;
            complexImaginerySquare = complexImaginery * complexImaginery;

            valueOne++;
        }

        return valueOne;
    }

結果:

ここに画像の説明を入力

レベルが見えるので、明らかに非常に悪いレンダリングです。十分に滑らかではありません。画像を滑らかにするにはどうすればよいですか? このように: http://upload.wikimedia.org/wikipedia/commons/2/21/Mandel_zoom_00_mandelbrot_set.jpg

4

2 に答える 2

0

ピクセル化を減らすために、ピクセルの幅の半分未満の小さな値のデルタに対して、 4 または 5 ポイント {( positionX+- delta, positionY+- )} の平均計算を行うことができます。deltaこれにより、ピクセルの下の領域が上から見える「典型的な」色が得られ、画像が滑らかになります。ただし、計算している反復回数の整数の性質のため、濃い青色の外側のバンドは削除されません。配色を調整するには多くの方法があります...私は、コメントで@leonbloyによってリンクされた記事でもカバーされているヒストグラム法に似たものを提案しようとしていました. その記事を読む前に私のハックの提案に行かないでください。それがあなたの答えだと思います。

于 2013-12-06T20:28:57.567 に答える