NISHIO Hirokazu's website > NISHIO HIROKAZU # Archived COREBlog
これは2004年11月4日から2006年2月18日までZopeで運用していたCOREBlogの静的なアーカイブです。 新しい日記は「西尾泰和の日記」で運用しています。

Pythonでフラクタル(ジュリア集合)

ジュリア集合の定義を調べるのにかかった時間のほうが実装にかかった時間より長い…。やっぱスクリプト言語って楽でいいな。 もっとはやくPILを勉強すればよかった。ものすごく遅いんじゃないかと不安だったけれども0.3秒くらいでした。でもこの2倍のサイズにすれば1.2秒だと考えるとリアルタイム性はないな。JAVAで仮に10倍早くなればまだ可能性はあるか…(何の可能性だ)

あー。こういうきれいなところは発散するまでに時間がかかるところだから計算時間も余計にかかるか…。0.7秒。いやなに、MATRIXの3番目のオープニングみたいなフラクタルの中に入っていく画像が作りたかっただけなんだけど。やっぱり各フレームBMPで吐き出しておいてAVIMakerでつなぐとするかな…。

import Image
import ImageDraw

SIZE=128
image = Image.new("L", (SIZE, SIZE))
d = ImageDraw.Draw(image)

c = 0.5 + 0.2j
for x in range(SIZE):
    for y in range(SIZE):
        re=(x*2.0/SIZE)-1.0
        im=(y*2.0/SIZE)-1.0

        z=re+im*1j
        for i in range(128):
            if abs(z) > 2.0: break
            z = z * z + c
        d.point((x,y),i*2)

image.save(r"c:\julia.png", "PNG")

どうでもいいことだけど、クォータニオンを使えば4次元空間上に(げふんげふん) 実際に動画作りに使うとしたらcの値とzの範囲を引数として与えられるようにすべきですな。


c=-0.78+i*0.002+0.23j(i<40), center=-0.5+0.2j, scale=1.0。この手の動画ってMPEGで圧縮するととんでもないことになりそうなので無圧縮AVI(2メガ弱) 25フレーム目から30フレーム目の間くらいのパラメータをゆっくり進みながらカメラが脇の黒い部分を通り抜けていくというのが映像としては面白いのかな。 しかし圧縮できないとなると…このサイズで40フレームで2メガだから…うーん、やる気が萎えた…。


[Python]  @2005-05-01 05:54
<< データベース勉強会の流れ | Main | 薬品格納クイズ(解答) >>

Comments このページは静的なアーカイブなので新しいコメントは受け付けておりません。ご意見ご感想はお気軽にメールでどうぞ。coreblog「あっとまーく」nishiohirokazu.org。
Trackbacks

PageView: 1525 Score: 247.99910 このカウンタは2006-03-26 11:05で停止しています。
Powered by COREBlog

NISHIO Hirokazu's website > NISHIO HIROKAZU # Archived COREBlog
Contact me: coreblog"at mark"nishiohirokazu.org
Access counter: This Page:712794 Total:1827505 during 2004/01/23-2006/03/26