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ともに一発で動きました。
検証作業、有難う御座居ます。
> グラフは実行していく結果が目に見えるのがよいですね(^^)
これこそ、グラフ電卓の醍醐味ですネ !
コメントを投稿