はぅ君プロジェクト > 管理人近況 > 未分類 > フラクタル・リターンズ 【日・趣】
この記事は、旧システム用に書かれたものです。
本システムでは正常に表示されない可能性があります。ご了承ください。
最近、C言語が進んできて、ようやくバイナリファイルの作成までできるようになりました。
これで、VBとCを合わせれば、CPU・メモリ・ハードディスク・GPUをかなりプリミティブな部分で支配できそうです。
あとは、サウンド系かなぁ。音声のビットデータを逐次生成していくようなリアルタイムサンプリングなんてジャンルがあるのかしら(・-・)?
さて、バイナリファイルが扱えるようになったということは、ハードディスクをバイト単位でいじれるということになります。
バイナリファイルというのは、文字として読めないファイルで、例えば音声とか画像とかになります。
今回、音声はハードルが高いので、画像をいじってみようと思いました。
ターゲットはbmpファイル。これは、ピクセルのビットデータをそのまま記憶しているはずなので、バイナリを解析すれば自由に色を配置できるはずです。というわけで、早速fread()を使って1pxとか2pxの画像データを読み込んで研究。
結果、どうやら、bmpでは、ピクセルデータが右あたりから左に進むという良く分からない構造だったのですが、なんとなく把握できたので、ここに色情報を打ち込んで行きます。
フラクタルが一番最初に思いついたので、これをC言語+ハードディスクで実現することに(・-・)
x[n+1] = x^2 - y^2 + 0.359
y[n+1] = 2.1*x*y + 0.1327
収束条件はx[n+1]とy[n+1]の距離が1000000以上の時。
配色は、結果をresとしたときに
R = res % 61 * (255/62);
G = res % 151 * (255/152);
B = res % 251 * (255/252);
です。
250倍
500倍
1000倍
2500倍
50000倍
100000倍
C言語でグラフィック系をやるのは多分初めてだけど、なかなかうまく行ってよかったです。
VB+DirectXの時のように、メモリ確保して逐次画面に描画するわけではないので早いねぃ。C言語をちょっと見直しました。
フラクタルは小数点計算が多いので、もしかしたらGPUでこれを実装すると、リアルタイムフラクタルとかできちゃったりしないのかな。
この前見つけたCUDA(2008/06/16の日記『選択と集中と融合と』)が使えるようになったら実装して見たいな~。
ここらへんのプログラミンググラフィックスの知識って、Wikiか何かにまとめて知識ベースにしたら需要あるかな。
みんなが使えるWikiをいくつか管理したいなーと最近思っています(・-・)
コメント無し
2013年もよろしくお願いいたします!
合計 | 228096 |
12/12 | 21 |
12/11 | 99 |
12/10 | 80 |
12/09 | 93 |
12/08 | 78 |
12/07 | 93 |
12/06 | 98 |
1,721,200 | 秒 |
478 | 時間 |
19 | 日 |
5.4578 | % |