私はスクリプトを使ってマンデルブロを描くことにしました。それを描くことはあまりにも複雑ではなかったので、私は色を使うことに決めました。そして、私は滑らかな着色アルゴリズムを発見しました。 this questionを使用して、私は何かを本当に美しくレンダリングできました。これはthis oneと似ています。pythonを使ってmandelbrotを設定するための色付けを正しく設定する方法は?
これを達成するために、3つの「ステップ」を使用してグラデーションカラーパレットを設定します。ダークブルーからライトブルー、ライトブルーからイエロー、そして最終的には黄色から暗褐色。全体像は完璧です。
ズームインしようとすると問題が発生します。this areaの例を考えてみましょう。私がズームのこのレベルにいるとき、私のスクリプトはもはやダークブルーを描きません。私はウィキペディアの画像で暗い青色が見えることがありますので、私はダークブラウン(私のパレットの終わり近くに色があります)を持っているので、私は何かをコーディングしたと思います。私が最初にこれについて考えたとき、パターンが元のパターンに戻っていれば、同じ色を使用してエスケープ時間を同じにする必要があります。
この色はパレットに設定されていたのですか、わからないエスケープ時間がありますか?ここで
は、私が着色に使用するコードです:
def color_pixel(n, z):
smoothcolor = n + 1 - math.log(math.log(abs(z)))/math.log(2)
f = smoothcolor/iterate_max
i = int(f*500)
color = palette[i]
return color
500は私のパレット(len(palette)-1
)の色数です。それは10上
を免れた場合、Zの値は、Iが最大反復回数より高い値と同じ結果として100を使用
Z。
ありがとうございます!
あなたが表示するような小さな領域を拡大すると、領域内の最小反復はもはや1ではなくなり、カラー配列の下端の色は使用されなくなります。 OTOHをベースレベルで使用すると、配列の上端の色がほとんど使用されないため、それらの色に気付かないでください。あなたができることの1つは、画像をレンダリングする前に、リージョンの周りで最も低い反復を見つけて、それをオフセットとして使用することです。 –
さらに多くのイテレーションがズームされるほど高くなるでしょうか? 色が元に戻るように、パレットのループを行う必要がありますか? – Lich4r
そうです、低い反復は最初のスケール画像の端にしかないので、投稿された画像はそれをあなたに伝えます!実験をすると、ズームが深くなればなるほど、Mセットの近くのディテールを解決するための反復が必要になります*。 –