Clifford A. Pickover 氏によるアトラクタで、en wiki には、2DのClifford attractor、3Dの「Pickover attractor」がある、と書かれています。3Dの表示はPCでも少々手数が掛かってしまうので、2D表示で出来るClifford attractor について、行ってみました。
Clifford attractorについては、以下のサイトで例が示されています。
Clifford Attractor
http://paulbourke.net/fractals/clifford/
ここで紹介されているグラフィクスは高性能のコンピュータを使って描き出されたものですから、これがそのままグラフ電卓で再現できるわけではないのですが、大まかな所は十分に描き出される筈です。
先ずは、TI-83+ で描いてみました。プログラム自体は実に簡単ですが、結構時間が掛かります。
PROGRAM:ATTRCT :AxesOff :ClrDraw :0.5→X:0.5→Y :For(I,1,1000) :Pt-On(X,Y) :sin(AY)+Ccos(AX)→Z :sin(BX)+Dcos(BY)→Y :Z→X :End
プログラムを実行する前に、細かい指定を行っておかないとなりません。
1. Clifford attractor では、A, B, C, Dの4つのパラメタを変換させる事で、様々な意匠が得られます。プログラム実行前に、変数A, B, C, Dを予め指定しておきます。
例)
1.32→A : 0.804→B : 2.568→C : 1.824→D
2. つぎに、グラフを描く範囲を指定しておきます。TI83+の場合、グラフ電卓の機能として描図領域の設定等を電卓のメニューから行います。X, Y共に、-4~+4の範囲で描くと、いい感じです。
ついでにHP50GのSysRPLで作成したものを掲載しておきます。UserRPLより断然早いのですが、それでも1分以上掛かってしまいますネ。
こちらの場合は、スタックにA, B, C, Dの数値を積み、プログラムを実行します。
描図範囲は PPAR を参照するので、プログラム実行前に[WIN]キー([Left-Shift]+[F2])で描図範囲を設定して下さい。
!NO CODE !RPL :: 0LASTOWDOB! CK2NOLASTWD CK&DISPATCH1 #1111 :: GETXMIN GETXMAX GETXMIN %- GETYMAX GETYMAX GETYMIN %- { LAM a LAM b LAM c LAM d LAM xmin LAM xrng LAM ymax LAM yrng } BIND CLEARLCD TURNMENUOFF 80 131 MAKEGROB GROB>GDISP TOGDISP ' ID X PURGE %0.5 ' ID X CREATE ' ID Y PURGE %0.5 ' ID Y CREATE 1000 0 DO LAM a ID Y %* %SIN LAM c LAM a ID X %* %COS %* %+ LAM b ID X %* %SIN LAM d LAM b ID Y %* %COS %* %+ ' ID Y STO ' ID X STO ID X LAM xmin %- LAM xrng %/ %131 %* COERCE LAM ymax ID Y %- LAM yrng %/ %80 %* COERCE PIXON3 LOOP ABND ; ; @
2 件のコメント:
akatuki様、こんばんは!
SysRPLはまずDebug4xで動作確認してからコネクトでhppを実機に持っていくのが最近のやり方になってるんですけど、#1、#2ともに一発で動きました。
グラフは実行していく結果が目に見えるのがよいですね(^^)
Sentaro 様、こんばんは !
> SysRPLはまずDebug4xで動作確認してからコネクトでhppを実機に持っていくのが最近のやり方になってるんですけど、#1、#2ともに一発で動きました。
検証作業、有難う御座居ます。
> グラフは実行していく結果が目に見えるのがよいですね(^^)
これこそ、グラフ電卓の醍醐味ですネ !
コメントを投稿