2025年10月26日日曜日

fx-CG50 : Julia 集合のグラフィクス

 理屈はさておいて、Julia 集合のグラフィクスというのが、Mandelbrot set graphics のコードをいじるだけで作成できるとの話で、作業してみました。


from math import *
from casioplot import *

clear_screen()

def julia(deg):
 tbl=[ (0,0,0),(255,0,0),(0,255,0),(0,0,255),(255,255,0),(255,0,255),(0,255,255),(255,255,255) ]
 n=len(tbl)*deg
 xmin = -3.84/2
 xmax = 3.84/2
 ymin = -1.92/2
 ymax = 1.92/2
 dx = (xmax-xmin)/384
 dy = (ymax-ymin)/192
 for yp in range(192):
  for xp in range(384):
   z = xmin+(xp*dx) + (ymax-(yp*dy))*1j
   c = -0.8 + 0.156j
   cnt = 0
   while (abs(z) <= 4.0 ) and ( cnt < n ):
    z = z*z+c
    cnt = cnt+1
   rgb = int(cnt*255/n)
   #col = (int(rgb),int(rgb*0.75),int(rgb*0.25))
   col = tbl[cnt%8]
   set_pixel(xp,yp,col)
  show_screen()

julia(6)
末尾の julia(6) で「計算深度」を指定しております。
この計算深度は、反復回数を指定するもので、カラーテーブルの大きさの倍数となっていて、カラーテーブルの大きさが 8 なので、最大で 6*8 = 48 回の計算繰り返しを行います。

どうして、こんな事をしているのか、と申しますと、計算回数の上限を上げる事で、色々と画像が変化してくるのですネ。
fx-CG50 のスクショを取る方法がわからないので、パソコで擬似的に行ったのが、つぎの画面であります。

中心部から黒の領域がウネウネと出ておりますが、回数を増やすと、黒の部分にも細かい色が現れるのです。
しかし、fx-CG50 ではチョット荷が重いので、上限を 6*8 にしているという次第です。

さて、このコードをやっていて、隘路に入ってしまったので、メモを書いておきます。
当初、ファイル名を jul-1.py としていたのですが、実行すると、「Syntax error」が出るのですネ。色々とコードを手直ししてみましたが、どうにも見通しがつかない。
結局、実行時に 「from jul-1.py import * 」と出ていて、ファイル名にあるハイホンを「コレって、引き算じゃね ? エラーじゃんかよ !」となっていたらしい。
そういや、CG50 本体で python コードを作成するとき、ファイル名にハイホンは入力できんのですね。道理で。

... なんとも情けないオチでありました。スマソ。

 

 

4 件のコメント:

やす (Krtyski) さんのコメント...

Screen Receiver を使うとGood!

akatuki様

以下から無料のアプリ Screen ReceiverをダウンロードしてPCにインストール。
https://support.casio.jp/download_files/004/download/screenrecv_inst_302a_2b.zip

PCとfx-CG50をUSBケーブルで繋いで Screen Receiverを起動すると、電卓画面がPC上で表示され、画像に名前を付けて保存できます。

ところで、このスクリプトを fx-CG100で動かしました。オーバークロックしたくなりますね!

akatuki さんのコメント...

やす (Krtyski) 様、お越し戴き多謝であります !

> Screen Receiver を使うとGood!
> 以下から無料のアプリ Screen ReceiverをダウンロードしてPCにインストール。
> https://support.casio.jp/download_files/004/download/screenrecv_inst_302a_2b.zip
> PCとfx-CG50をUSBケーブルで繋いで Screen Receiverを起動すると、電卓画面がPC上で表示され、画像に名前を付けて保存できます。

オオッ ! コレでスクショが撮れる ...
やはり、Windows マシンが欲しいところであります。本気で考える所も、Windows 11 の御時世で、なかなか手が出しづらいの ...

> ところで、このスクリプトを fx-CG100で動かしました。オーバークロックしたくなりますね!

早速動かして戴きまして、親分、多謝であります !
そうでありました ! オーバークロックという手がありましたネ。

やす (Krtyski) さんのコメント...

akatuki様

お気づきかもしれませんが、Screen Receiver にはMac用もあります:
https://support.casio.jp/download.php?cid=004&pid=1340

ご参考まで...

akatuki さんのコメント...

やす (Krtyski) 様、ご来訪、有難う御座います !

> お気づきかもしれませんが、Screen Receiver にはMac用もあります:
> https://support.casio.jp/download.php?cid=004&pid=1340
> ご参考まで...

お知らせ戴きかたじけない !
しかし、Mac もなかなか手が出る価格ではなく、目下、泣きながら中古のPCにロハで使えるOSを入れているという始末 ...