TI-83+のマニュアルには、Sierpinski gaskets を「乱数を使う手法」で描くプログラムが掲載されています。
Sierpinski gasketsは「再帰図形」なので、再帰処理によって描く事が出来るのですが、TI-83+には再帰処理のメカがないため、乱数を使う手法を例示していたのでした。
HP50GでRPLを使うと、再帰処理のプログラムを作成できます。今回も懲りずにSysRPLで書いたプログラムを示します (もちろん、UserRPLでも書けます)。
ユーザーが使える「スタック」を用意する事で、BASICでも再帰処理のプログラムは書けると思います。Androidの「BASIC !」には、スタックのメカが用意されておりました。3DSのプチコンにもスタックのメカがあるそうです(藤堂様、多謝 !)から、再帰処理プログラムの作成は可能です、多分。
(こちゃこちゃしてしまい、当方、着手出来ず。申し訳ない。loadがガンガン上がって、頭から湯気が出ております ...)
!NO CODE !RPL :: ' :: { LAM ax LAM ay LAM bx LAM by LAM cx LAM cy LAM d } BIND LAM d #0= ITE :: LAM ax 80 LAM ay #- LAM bx 80 LAM by #- DRAWLINE#3 LAM ax 80 LAM ay #- LAM cx 80 LAM cy #- DRAWLINE#3 LAM bx 80 LAM by #- LAM cx 80 LAM cy #- DRAWLINE#3 ; :: LAM ax LAM ay LAM ax LAM bx #+ #2/ LAM ay LAM by #+ #2/ LAM ax LAM cx #+ #2/ LAM ay LAM cy #+ #2/ LAM d #1- LAM sier EVAL LAM ax LAM bx #+ #2/ LAM ay LAM by #+ #2/ LAM bx LAM by LAM bx LAM cx #+ #2/ LAM by LAM cy #+ #2/ LAM d #1- LAM sier EVAL LAM ax LAM cx #+ #2/ LAM ay LAM cy #+ #2/ LAM bx LAM cx #+ #2/ LAM by LAM cy #+ #2/ LAM cx LAM cy LAM d #1- LAM sier EVAL ; ABND ; { LAM sier } BIND CLEARLCD TURNMENUOFF 80 131 MAKEGROB GROB>GDISP TOGDISP 65 80 25 1 105 1 4 LAM sier EVAL SetDAsTemp ABND ; @
0 件のコメント:
コメントを投稿