2025年5月27日火曜日

fx-CG50 : カッシーニの卵形線を描いてみるゾ

 前に「カッシーニの卵形線」というのがあると聞いたので、手持ちの fx-CG50 upython で描いてみた、という小ネタです。

ref. カッシーニの卵形線 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%83%E3%82%B7%E3%83%BC%E3%83%8B%E3%81%AE%E5%8D%B5%E5%BD%A2%E7%B7%9A

 

2025-06-01 追記

やす親分から、線引きなどの機能を実現した module「u.py」のお知らせを戴きまして、大いに刺激を受け、改変致しました。親分、お世話になります ! 

 

こちらのページから u.py を取得して、導入しておいて下さい。 

ref. Casio Python - ユーザー関数 line() - e-Gadget 様
https://egadget.blog.fc2.com/?no=764

 

座標軸の表示を盛り込みましたが、「目盛り」は盛り込んでおらんです。いずれの課題としておきます。

代わりに、デカルトの正葉線の式を追加致しました。 

また、表示領域の指定をチョット凝るなどしております。

元々、関数の絶対値が指定の値よりも小さい時に 0 とみなして、点を打つ具合に動作しておりますから、正確な線と較べると、太くなってしまう所がります。

デカルトの正葉線のWikipedia をみると、媒介関数表示が出来るので、 fx-CG50 のグラフ機能できれいな線を描けます。比較してみると面白いと思います。

 

ref. デカルトの正葉線 - Wikipedia
https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%AB%E3%83%AB%E3%83%88%E3%81%AE%E6%AD%A3%E8%91%89%E7%B7%9A

  

upython のコード ( 改訂新版 : やす親分の u.py module を使用します)

 
from u import *
from casioplot import *

#
def f(x,y):
return (x*x+y*y)*(x*x+y*y)-2*(x*x-y*y)-(1.02**4-1**4)

#
def f1(x,y):
return x*x*x-3*x*y-y*y*y

#
def scrSize() :
if isCG() :
return 384, 192
else :
return 384/3, 192/3

#
def axis(xs,xe,ys,ye):
i = int(-xs/(xe-xs)*width)
j = int(-ye/(ys-ye)*height)
line(0,j,width,j)
line(i,0,i,height)

#
def draw(func,xs,xe,ys,ye,eps):
for j in range(height):
for i in range(width):
x = (i*(xe-xs)/width +xs)
y = (j*(ys-ye)/height+ye)
if abs(func(x,y))<eps:
set_pixel(i,j)
# show graphix progressively
show_screen()


# main part
width, height = scrSize()
#xs,xe,ys,ye= -1.6,1.8,-0.7,0.9
xs,xe,ys,ye= -2.4,2.7,-1.05,1.35
eps=0.05

draw(f,xs,xe,ys,ye,eps)
axis(xs,xe,ys,ye)
 

( 参考 : 最初のコード )

 
 from casioplot import *
#
def f(x,y):
  return (x*x+y*y)*(x*x+y*y)-2*(x*x-y*y)-(1.02**4-1**4)


def draw():
  width  = 383
  height = 191

  xs=-1.8
  xe= 1.8
  ys=-0.9
  ye= 0.9
  eps=0.05

  for j in range(height):
    for i in range(width):
      x = (i*(xe-xs)/width +xs)
      y = (j*(ys-ye)/height+ye)
      if abs(f(x,y))<eps:
        set_pixel(i,j)
      #  show graphix progressively
      show_screen()
        
draw()

2025年5月22日木曜日

他人様のpostを肴に ...

 Ellefacia Marguerite ( @ellefacia_m ) 様、ポスト

この内部演算での扱いのせいで定数を定数と表示できないバグを何とかしてくれ!! 何でfx-5800Pですらちゃんと表示されるものが,数倍価格の高いfx-CG50でダメなのじゃ!? w →
https://x.com/ellefacia_m/status/1923199772313186771

Machinの公式を自然表記で計算してもpi表示にならないとお怒りの様子。
fx-5800P では、pi表示になる様ですネ、羨ましい。

処理方式が変更された所で、取りこぼしがあったのでしょうか ?

せっかくなので、XCASでやってみましたヨ !

4*(4*atan(1/5)-atan(1/239))=>/

と入力すると「答え一発」ですネ。
( 「=>/」は、「→」、「÷」のキーを使います。式の計算と簡便化、との事 )

2025-05-25 追記
XCAS の入力表記に誤り ( atan(1//5) としておりました ) を訂正しましたヨ

 

2025年5月7日水曜日

( こんな事ァ、書きたくないのだけれど )

目下、Trump大統領の「関税だッ !」大号令もあってか、アメリカからの物品の値段が大きく影響を受けている様子です。

以下は、並行輸入版の fx-CG50 ですが、

ref. カシオ計算機 カシオ 電卓10桁 グラフ関数 FX-CG50 ブラック [並行輸入品] - Amazon JP
https://www.amazon.co.jp/%E3%82%AB%E3%82%B7%E3%82%AA%E8%A8%88%E7%AE%97%E6%A9%9F-%E3%82%AB%E3%82%B7%E3%82%AA-%E9%9B%BB%E5%8D%9310%E6%A1%81-%E3%82%B0%E3%83%A9%E3%83%95%E9%96%A2%E6%95%B0-FX-CG50/dp/B07HYY1DCT

2025-05-07 時点で、17,800 円となっております。以前なら、15,000円くらいで買えましたが、諸物価高騰の折 ...

日本で TI 電卓の正規代理店となっております NAOCO INC. 様の Amazonの販売は、今の所価格に影響は出ていない様子です。

ref. NAOCO INC. 様 の Amazon JP
https://www.amazon.co.jp/s?i=merchant-items&me=AUGV0LKUMT9L3

しかし、以前は在庫していた「TI-84Plus CE Python日本語マニュアル付き[正規輸入元] 」が、今は在庫切れになっております。

以前ほど、入荷に手間取る事はないはずですから、今は何らかの理由で在庫を整理しているのでしょうか ?

円安傾向は継続しており、アメリカも関税政策を進めていて、海外からの輸入品の価格にも大きく影響する可能性があります。
NAOCO INC. 様の TI 電卓も、在庫のない商品から順次「価格改定」となるのかも。

こんな事を書くと「TI-Nspire CX II CAS [正規輸入元]」なんかも、たちまち売り切れになってしまいそう。

ref. TI-Nspire CX II CAS [正規輸入元] - Amazon JP
https://www.amazon.co.jp/%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%AC%E3%82%A4%E3%83%89%E3%83%96%E3%83%83%E3%82%AF%E4%BB%98%E3%81%8D-Texas-Instruments-TI-Nspire-CAS/dp/B07XCM6SZ3

マイッタなァ。価格改定でも、安くなれば歓迎なのですが、果たしてどうなるのでしょうか ?

2025年5月3日土曜日

fx-CG100 のマニュアルPDF をみて

 先日、アメリカで販売開始となった、fx-CG100 Classwiz でありますが、マニュアルPDF をみていたら、余り急いで買うようなもんじゃなさそうな気がしてきました。

  • upython version が 1.9.4 
  • casioplot module に、線を引く機能がない

なのヨ。 

もちろん、

  • matplotlib.pyplot, turtle といった module がスグに使える
  • code editor のフォントが小さく、狭い画面を広く使える

という利点は在りますから、ここに使いやすさを求める向きは、是非とも購入をご検討戴きたく。

upython version 1.9.4 と云うと、当方が使っている、fx-CG50 の upython の version とおんなじなのですネ。まだ、OSは古いママ。

なので、もしかして「隠しcommand があったりして ?」と、getkey() の代わりに _getkey(), getkey_() ... とかやってみたのですが、流石にそれは無かった。海外のユーザーはHack済みなのでしょう。

fx-CG50,  fx-CG100 の casioplot には線引きの機能がありませんが、fx-CG50 で動く Python Extra には線引きの機能があったはず (gint module, dline method )で、upython も大分新しいものを導入しております。

casioplot で線を引きたい場合、Bresenham  algorithm により、自前で線引きのmethod を書けばいいのでしょう。それを含めて「学習用途」なのかも知れません。

 確かに、code editor など、導入されていない機能は多くあり、まだ安定していない部分もあります。

 fx-CG50 user としては、fx-CG100 Classwiz に飛びつく前に「射撃待て」 と注意喚起しておこうと思います。

 当方、懐具合が寒いので、こんな事を言っておりますが、懐具合のイイ方は、是非とも fx-CG100 のご購入を !?