計算関数

概要

計算関数は、フラクタル関数により計算された 複素数の列から、ある実数値を取り出す関数です。
フラクタル関数によって計算された複素数の列は、そのままでは画像生成に使えません。 複素数の列から、計算関数によって様々な方法で実数値が取り出され、これが画像に変換されます。 取り出す方法は色々あり、たとえば最終項の n の値であったり、最終項の絶対値、 あるいは各項の前後の比などが使われます。

計算関数は、フラクタル関数ノードの一部です。 フラクタル関数ノードでは、大元となるフラクタル関数の他に、 どの計算関数を使って値を取り出すかを選択します。 計算関数は、一度に複数使うことができます。 また、同じ種類の計算関数を設定を変えて同時に複数使うこともできます。

操作方法

フラクタル関数ノードの下部に、現在有効になっている計算関数が表示されます。 ここに計算関数を追加する場合は、[add]ボタンを押し、表示されるメニューから計算関数を選びます。 計算関数を削除する場合は、計算関数の上で右クリックし、[ノードの削除]を選びます。

計算関数には、パラメータを持つものがあります。 パラメータを設定するには、計算関数ををダブルクリックするか、 右クリックして表示されるメニューから [プロパティ]を選択します。

計算関数の説明

Last タイプと Intercept タイプ

計算関数には、Last タイプと Intercept タイプとがあります。 Last タイプは、フラクタル関数で生成された複素数の列の、最後の項だけを使用して計算します。 Intercept タイプは、フラクタル関数で生成された複素数のそれぞれから計算します。 以下で説明する計算関数のうち、Speed から Smooth までは Last タイプ、Ring から Direct Mapping までは Intercept タイプです。

Intercept タイプには共通パラメータがあります。 これについては、「Intercept タイプ共通パラメータ」を参照してください。

Speed

最終項の n の値です。

Abs

最終項の絶対値です。

Direction

最終項の、実軸に対する角度です。0 〜 100 の範囲で計算されます。

Log

フラクタル関数を打ち切り回数まで計算した場合の絶対値の、対数の対数をとったものです。 実際には(先に打ち切り条件をみたすので)打ち切り回数まで計算しているわけではなく、 打ち切り条件をみたした最終項から見積もっています。

Twist

Log のねじれのようなものを計算します。2タイプあります。

Shade

Log の値を高さとみなし、一方向から平行光を当てた場合の陰(かげ)を計算します。 結果は、0 〜 100 で計算されます。 パラメータは、光源の方向です。

Smooth(Mandelbrot Setのみ)

Log とは別の計算方法で、集合の外をなめらかにつなぎます。

Intercept タイプ共通パラメータ

StepRotate
各項の値を計算する前に、フラクタル関数の計算した各項を StepRotate * n 度回転させます。
Power
各項の計算結果を Power 乗します。
StepBase
各項の計算結果に StepBase * n を足します。
StepAmp
各項の計算結果を (1 + StepAmp * n) 倍します。
Mode
各項で計算された結果を、最終的にどのように出力するかを指定します。
First最初に計算された有効な値を採用します。
Last最後に計算された有効な値を採用します。
Largest代表値(Main)が最も大きかったものを採用します。
Addition各項の値を合計します。
Half古い値を 1/2 してから、新しい値を足します。
Multiply古い値に新しい値を乗算します。
Screen
Difference古い値と新しい値の差の絶対値です。
First と Lastでは、Step から出力される値は採用された項の n の値です。 それ以外では、最初に有効な値を計算した n の値が出力されます。
StartCount
下の SkipCount、EndCount とあわせて計算する項を指定します。 StartCount には計算を開始する n の値を設定します。 StartCount より EndCount まで、SkipCount おきに計算されます。
SkipCount
何項おきに計算するかを指定します。
EndCount
計算を終了する n の値を設定します。
Translation Mode
Intercept タイプでは、結果はまず 0 〜 100 で計算されます。 Translation Mode では、これをどのように変換して出力するかを指定します。
Linearそのまま出力
Triangle三角波
Cosineコサインを底上げした形で、0 と 100 の周辺が滑らかに立ち上がる
Sineサイン波の上半分
Circle半円状
Double CosineCosine の二周期分

Ring

各項の、原点からの距離がある範囲(Base - Range 〜 Base + Range)にあるときに有効な値を出力します。 Angle からは、各項の実軸に対する角度が 0 〜 100 で出力されます。

Screw

各項の、実軸に対する距離がある範囲(Base - Range 〜 Base + Range)にあるときに有効な値を出力します。 Distance は、各項の原点からの距離です。 Rotation により、各項からの距離に応じて回転を付けることができます。

Spot

各項の値がある範囲((Re, Im) から半径 Range 以内)にあるときに有効な値を出力します。 Angle からは、各項と(Re, Im)を結ぶ線の実軸に対する角度が 0 〜 100 で出力されます。

Line

各項と、(Re, Im)を通る向きが Dir の直線との距離が Range 以内にあるときに有効な値を出力します。 Distance は、各項から直線におろした垂線の足の、(Re, Im)からの距離です。

Direct Mapping

各項の値で直接ビットマップを参照します。 各項の結果は、Synthesize Mode に従い累積します。 この計算関数を使う場合、Mode は必ず Last にしてください。

ビットマップの参照に関するパラメータは、Map ノードと同一なのでそちらを参照してください。
Synthesize Mode の値を意味は、Synthesize ノードと同一です。

Copyright(C) 2001 HOSO