Location : Home > Languages > Perl > Package
Title : Math::Fractal::DLA
Toolbox Logo

名称

 Math::Fractal::DLA - 拡散律速凝集


概要

use Math::Fractal::DLA;
$fractal = new Math::Fractal::DLA;

# サブクラス Math::Fractal::DLA::TYPE の動的呼び出し
$fractal->setType( TYPE ); 

# ログファイル FILE を開く
$fractal->debug( debug => 1, logfile => FILE );

# メッセージをログファイルに追加
$fractal->addLogMessage( MESSAGE );

# グローバル設定
$fractal->setSize(width => 200, height => 200);
$fractal->setPoints(5000);
$fractal->setFile( FILENAME );

# 色設定
$fractal->setBackground(r => 255, g => 255, b => 255);
$fractal->setColors(5);
$fractal->setBaseColor(base_r => 10, base_g => 100, base_b => 100, add_r => 50, add_g => 0, add_b => 0);

# 生成されたフラクタルをファイルに出力
$fractal->writeFile();

# それを返す。
$fractal->getFractal();

説明

 Math::Fractal::DLA は拡散律速凝集によるフラクタル生成を行う。


概観

 拡散律速凝集(DLA; The Diffusion Limited Aggregation)フラクタルは統計的フラクタルのグループに属する。

 2人の物理学者 T.A. Witten 及び L.M. Sander により1981年に発明された。
 フラクタルは目標領域に向かってランダムに移動する単一の部分により生成される。領域に当たることで部分はそれ自身の部分となりフラクタルは成長する。

 Math::Fractal::DLA は Math::Fractal::DLA::Explode のようなサブクラスのための枠組みであり、フラクタル生成のメソッドを実装しているわけではない。フラクタルを生成するためには Math::Fractal::DLA オブジェクトを生成し、setType メソッドを呼び出してサブクラスを呼び出さなければならない。さもなければ setType メソッドを呼び出さずに直接サブクラスからオブジェクトを用いなければならない。サブクラスの特定のメソッドについてはそれぞれのドキュメントを見よ。


コンストラクタ

new

 これは Math::Fractal::DLA のコンストラクタである。パラメータは不要である。


メソッド

debug ( debug => 1, logfile => FILENAME )

 デバッグモードを起動する。デバッグ情報は FILENAME に追記される。

addLogMessage ( MESSAGE )

 MESSAGE をログファイルの追加する。

loadFile ( FILENAME )

 JPG または PNG フォーマットで既存の画像をロードし背景画像として用いる。

setSize ( width => WIDTH, height => HEIGHT )

 画像のサイズを設定する。

setPoints ( NUMBER )

 フラクタル用に利用する点の数を設定する。

setFile ( FILENAME )

 出力ファイルを設定する。サポートしているファイルフォーマットは JPG 及び PNG。

writeFile

 setFile メソッドで特定されたファイルにフラクタルを出力する。

getFractal

 フラクタルを返す。


色設定

 0 から 255 までの幅で RGB 値であらゆる色を指定する。

setBackground ( r => RED, g => GREEN, b => BLUE )

 画像の背景色を設定する。

setColors ( NUMBER )

 使用する色数を設定する。

setBaseColor ( base_r => RED, base_g => GREEN, base_b => BLUE, add_r => RED, add_g => GREEN, add_b => BLUE )

 base_r, base_g, base_b で定義された基本色(base color)で始まり、各間隔(点の数/色)で add_r, add_g, add_b を追加する。add_r, add_g, add_b は0以下である。

使用例:
 基本色を base_r => 10, base_g => 100, base_b => 100 として add_r => 50, add_g => 0, add_b => 0 とした時に、フラクタルで5色使いたい場合には以下のようにする。

$fractal->setColors(5);
$fractal->setBaseColor(base_r => 10, base_g => 100, base_b => 100, add_r => 50, add_g => 0, add_b => 0);

 結果として以下のような値がフラクタル描画に用いられる。

(r,g,b): (10,100,100), (60,100,100), (110,100,100), (160,100,100), (210,100,100)

著者

 Wolfgang Gruber, w.gruber@urldirect.at


参考資料

 Lincoln D. Stein の GD モジュール


著作権

 Copyright (c) 2002 by Wolfgang Gruber. All rights reserved.

 本プログラムはフリーソフトウェアであり、Perl 本体と同等の条件で修正/再配布してもよい。

Toolbox Logo
Updated : 2007/09/14