2013年11月22日金曜日

HP Primeで動くかも知れない、短いコード

以前、HP PrimeでMandelbrot集合を描くコードがある、と紹介しましたが、これをいじって、Biomorphを描く様にしてみました。
シミュレータで動く事は確認していますが、未だ実機を持っていないので、試された方が居りましたら、実行時間などをお知らせ戴きますと幸いです。

----------
// title : biomorph for HP Prime
// begin : 2013-11-21 14:49:31 
// note  : 

//
pixVal(c)
BEGIN
LOCAL  cnt := 0;
LOCAL  z := (0,0);

WHILE (ABS(z) <= 10) AND (cnt < 10) DO
  z := z^5+c;
  cnt := cnt+1;
END;

//  color value : 0 for black, 16777215 for while
IF ABS(RE(z)) < 10 THEN RETURN 0; END;
IF ABS(IM(z)) < 10 THEN RETURN 0; END;
RETURN 16777215;

END;


EXPORT biomorph()
BEGIN
// Clean the screen (G0):RECT();

LOCAL dx, dy, c, xp, yp;
LOCAL xmin, xmax, ymin, ymax;
LOCAL pixStat;


xmin := -6.4;
xmax :=  6.4;
ymin := -4.8;
ymax :=  4.8;

dx := (xmax-xmin)/320;
dy := (ymax-ymin)/240;
c  := (xmin, ymin);

// we loop over each pixel
// Of the screen wil Prime:
FOR yp FROM 0 TO 239 DO
  FOR xp FROM 0 TO 319 DO
    c := (xmin+xp*dx, ymax-yp*dy);
    pixStat := pixVal(c);
    PIXON_P(xp, yp, pixStat);

  END;
END;

//  key wait loop
REPEAT UNTIL GETKEY() == -1;
FREEZE;

END;

----------

こんな感じ。


Biomorph については、例えば、こんなページがあります。

Fractals #2: Biomorphs - Mad Teddy's web-pages
http://www.madteddy.com/biomorph.htm

元々は「Based upon work by C.A. Pickover」との事。「biomorph pickover」で検索すれば、色々と面白い情報が得られると思います。

で、Julyさんの所の並行輸入版HP Prime、値段が下がってきて居ります。

2 件のコメント:

小林尚樹 さんのコメント...

お世話になります。
実行時間は1分22秒でした。

akatuki さんのコメント...

小林 様。お知らせ、有り難う御座居ます。

非力なPCのシミュレータ(エミュレータ)で動かすと、ズビズビっと描いてしまうのです。実機でやっても少しのろい程度なのかなァと思っておりましたが、流石にPCには及ばなかった ... 。

でも、結構このプログラムは計算量がある筈なので、1分22秒ならば、十分実用的と言って良いかと思います。

お知らせ、有り難う御座居ます。