パレットをn88basic(86)で以前に書いたものに寄せたmandelbrotです。
昨日のeggxのサンプルの表示範囲を変えただけの例と比べると色をPC98によせて作成した過去の例に合わせるような変更を加えています。また time.h のclock関数を使って所要時間を計算して表示しています。
basicでは数式中に論理式を数値とみなして計算するときは(真)のときを−1、(偽)のときを0として利用していたのですがcでは(真)は1なのでより素直に書けます。
eggxの関数 newrgbcolorでPC98的な8色(0-7:黒青赤紫緑水黄白)を用意するのに青がいるところはi % 2で色をセット、緑は i > 3 でセット、赤は (i >> 1) % 2で0−7の3bitの各bitを0,1として取り出して利用しました。
(あ、今更気がついたけどcなら素直に0x1,0x2,0x4で && とればいいでね,でも >>も要るからあんまり変わらないか)
ubuntuのcの場合CLOCKS_PER_SECONDが1000000なので1000で割ってミリセコンドを表現してます。
久しぶりに細かいことを考えて書いてるけどミニパズルみたいで面白い。
しかし、なんの工夫もなく書いて57msecなのか・・・う〜ん!
0 件のコメント:
コメントを投稿