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、値段が下がってきて居ります。

5 件のコメント:

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

    返信削除
  2. 小林 様。お知らせ、有り難う御座居ます。

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

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

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

    返信削除
  3. 私の個体だと1分34秒でした。
    充電器を繋いでいない状態かつ少しバッテリーを消耗した状態だったのでその影響かな、と思います。

    どうやらHP Primeのエミュレータには実機再現(速度)のデバフがないらしく、純粋なPCのスペックで実行できるみたいです。
    それ故、互換性があったりなかったり…ですが変に制限をかけられるよりは良いですよね。できればオンオフできる仕様がいいです。
    実際、Saturn系エミュレータ「Emu48」なんかは設定からオンオフできるようになっています。

    返信削除
  4. お遊びエンジニアリング2025年5月25日 21:39

    1つ前のコメント送信者です。
    2014年に投稿された方とは確実にリビジョンが違うはずなので、
    バッテリーを虐めすぎただけかと。

    充電してやった時の時間はあまり覚えていないですが、1分台か、1分10秒台だったか、そんなくらいです。

    返信削除
  5. お遊びエンジニアリング 様、ようこそお越し下さいました !

    > 私の個体だと1分34秒でした。
    > 充電器を繋いでいない状態かつ少しバッテリーを消耗した状態だったのでその影響かな、と思います。

    確か、G2 は かなり速くなったとの事でしたから、意外な所で遅延動作の原因になる、という具合でしょうか ?
    あるいは、プロセッサの更新に伴い、ファームウェアの大幅な変更、機能拡充などが影響したのかなぁ。
    Androidスマートフォンも、連続使用でいつの間にか動作がもっさり、と感じる事がありますから、HP Primeもリセットすると速さが回復したり、とか ?

    お知らせ、有難う御座います !

    返信削除