2021年3月31日水曜日

HP PrimeのCASでお遊び

HP PrimeのCASは「XCAS」を使っているそうで、独自スクリプトのほかに、python文法に準じたスクリプトを実行できる、との事。
そこで、簡単なスクリプトを作成してみましたヨ。

参考にしたのは、つぎのTweet。

cf. https://twitter.com/RR_Inyo/status/1217489174128758784

少々古いものですが、色々と研究して、どうにか再現できた次第。

使い方

1. HP Primeのプログラム・エディタで、適当な名前でファイルを作成します。この時、CASのチェックボックスにチェックを入れるのを忘れずに。
2. プログラムを実行します。しかし、この時点では、何も実行されません。
3. CASを呼び出し、iter_cos(20) と入力して実行します。

コード解説

HP PrimeのXCASではPPLのグラフィクス命令が使えるので、こんなコードが動くのですネ。
また、XCASのコードなので、頭と尻に#CAS, #END というタグが付いておりますが、同時に、ファイル名として準備されるスクリプトヘッダは、必要無さそうな感じなので削除しております。
スクリプトを自動実行できない所はありますが、グラフィクスのコードも動くので、そこそこ楽しめそうです。


コード

#cas

def iter_cos(n):
  width = 320
  height = 240
  for k in range(height):
    for j in range(width):
      x = j/width*10.0-5.0
      y = 5.0-k/height*10.0
      z = x+y*i
      l = 0
      while l<n and abs(z)<50:
        z = COS(z)
        l=l+1
      col = rgb(l/20*255,0,0)
      PIXON_P(j, k, col)
  WAIT

#end

2021年3月4日木曜日

fx-CG50で「2週遅れのバレンタインデー」

先日のハートカーブのグラフィクスを、量販店に行った折に、店頭のfx-CG50でやってみました。
しかし、グラフ機能で描こうとしても、なかなか思うように行きませんネ、コマッタ。

こうした際には、pythonでプログラムを書け、となりそうですが、店頭の試用機のOSは更新されていないので、python 使えません。「バカ、スクリプトを書くヤツがいるか。pythonは最後の武器だ」

そこでグラフ機能で描く方法を模索した所、ようやく描くことが出来たのでした。

標準のグラフ機能で、Functionを描画形式として行うと、うまく行かない。何故か ?
Function形式では、x軸の増分が1ドットおきに固定されているからです。
しかし、件のハートカーブ式では、1ドットよりも細かい増分で描かないと「塗りつぶし」が現れない。

この限界を突破するには、裏技っぽいですが、FunctionではなくParametric 形式で表示を行います。
Parametric形式で描図を行うと、媒介変数 T の変域と増分が指定できます。

ハートカーブの場合、(4-x^2)^0.01 という項がある事から、-2〜+2の範囲を越えると実数ではなくなるので、グラフに表示できなくなる事が予想されます。

そのため、{ T | -2<=T<=2 } で描いてやれば、ハートカーブが現れるでしょう。
また、媒介変数 T の増分は自由に設定できますが、余り小さいと、その分、計算に時間が掛かります。
店頭で試した際は、0.0025 (2.5E-3) で試した所、十分な図形が得られました。

画像が掲載できませんが、fx-CG50をお持ちの向きはお試し戴き度。