自己平方フラクタル

-
-
+ i

次の漸化式を考える。

xn+1 + yn+1i = ( xn + yni )2 + Xc + Yci

複素平面上の各点で、その点の座標 ( x0, y0 ) を出発点として、

xn2 + yn2 > 発散と判定する閾値

または

n > 繰り返し上限

となるまで漸化式を進めていき、条件が成立した時の n の値にその点の色を対応させる。

この操作を、指定の領域すべての点に対して実行して得られる図形が自己平方フラクタル。 以下、設定項目の説明。

resolution

何ピクセル置きに計算するかの数値で、結果として描画の解像度となる。 可能な値は 1 〜 10 の整数。

値を大きくすると、画像は荒くなるが計算は速くなる。 まずは 5 ぐらいで当たりを付けて、大体決まったところで 1 にするのがいいだろう。

level

繰り返し上限。 可能な値は 32 〜 128 の整数。

この値を、点の明度の諧調としても使っているので、値を大きくすると細かい画像となる。 が、発散しない点が多いと、値を大きくすることで計算量が膨れ上がってしまう。 これも最初は 32 ぐらいにしておいて、大体決まったところで大きくするのがいいだろう。

R-range

複素平面上の実数軸の表示幅。

画面表示上は横軸に対応する。 値を小さくすれば拡大、値を大きくすれば縮小となる。 これらの値の大小は、計算量には関係無い。

I-range

複素平面上の虚数軸の表示幅。

画面表示上は縦軸に対応する。 設定値と動作の関係は、R-range に同じ。

Const

複素定数の実数部と虚数部。 上の漸化式の Xc と Yc に当たる。

この値の組み合わせで、どんな図形になるかが決まる。

妥当な値を入力してくれるものと信じて、入力値のチェックなどはしていない。 無茶な値を設定しないこと。

計算量がそれなりに多いので、貧弱な CPU だと厳しいものがあるだろう。 何の役にも立たないのに重いとは…。 あと、発散と判定する閾値は、この値を変えても画面表示に何の影響も無いので、4 固定としている。