ビット論理演算でパターンを描く(1)
「コンピュータ・ワンダーランド―驚異と悦楽の電脳迷路」で得た知見発表シリーズ第3弾にして最終回。
P105 から始まる第13章「美とビット」では、ビット論理演算によってパターンを描く方法が紹介されています。いわく……
AND や OR のような論理演算を使う単純この上ない算術計算を行なうだけで、拡大対称性を持った非常に複雑なパターンが得られる。
ポコーニィのフラクタル
「コンピュータ・ワンダーランド―驚異と悦楽の電脳迷路」で得た知見発表シリーズ第2弾。
今回は「ポコーニィのフラクタル」なるものです。こいつ↓
ポコーニィのフラクタル – wonderfl build flash online
真・蜘蛛のフラクタル
真・蜘蛛のフラクタル – wonderfl build flash online
本記事は、こないだ投稿した「蜘蛛のフラクタル」の補遺になります。
蜘蛛のフラクタル
こないだ、カオス・フラクタル絡みで知った Mr. Clifford A. Pickover の著書「コンピュータ・カオス・フラクタル―見えない世界のグラフィックス」を読んでタイリング・パターンのコードを wonderfl に投稿しました。
その後、同氏の別の著書「コンピュータ・ワンダーランド―驚異と悦楽の電脳迷路」を読んだところ、またまた面白げな知識を得ましたので wonderfl に投稿してみたいと思います。先般組んだマンデルブロ集合、ジュリア集合のコードをちょこっと改造するだけの至極簡単なもの。
まず今回はその第1弾「蜘蛛のフラクタル」。
逆写像によるジュリア集合(2)
逆写像によるジュリア集合の描画では、その漸化式において、計算するごとに二つの値を得る、ということを前回見ました。
漸化式で計算結果が2つになるってことは、プログラム的には2分木の再帰処理ということですね。
実際のコードでは Julia クラス内の plot 関数において以下のように記述しました。
private function plot(z:Complex, c:Complex, generation:int):void {
// 中略
z = MathComplex.subtract(z, c);
z = MathComplex.sqrt(z);
var rl:Number = z.real;
var im:Number = z.imag;
generation--;
plot(new Complex( rl, im), c, generation);
plot(new Complex(-rl, -im), c, generation);
}
