Casio Python - ユーザー関数 locate()

Casioグラフ関数電卓の Python を使ってみる
- リファレンス
<目次>
locate()初版:2020/12/09
[対応モデル] - fx-CG50 OS3.20 以降、fx-9750GIII / fx-9860GIII OS3.21 以降
文字(列) や 数値を、桁と行で位置を指定してグラフィック画面に描画します。
併せて、描画の色とフォントサイズを指定することもできます。
さらに、画面に転送するか、VRAMのみに転送するかの選択も可能です。
▶ 書 式: locate(column, row, obj, color=1, size='m', show=1)
▶ 引 数:
- 第1引数 - column: 描画する文字(列) / 数値 の座標 (桁, 行) の 桁座標、0 以上の整数
- 第2引数 - row: 描画する文字(列) / 数値の座標 (桁, 行) の 行座標、0 以上の整数
- 第3引数 - obj: 描画する文字(列) / 数値
- 第4引数 - color: 色を指定するパラメータ引数で、省略可能でデフォルトは 1 です。
この引数は、内部で使っているユーザー関数 grp_color() に渡されます。
引数の具体的な設定については grp_color() のリファレンスを参照。
- 第5引数 - size: フォントサイズを指定するパラメータ引数で、'l', 'm', 's' のいずれか。
これは省略可能で、省略時は 'm' になります。
'l' - 大フォント、'm' - 中フォント、's' - 小フォント
- 第2引数 - row: 描画する文字(列) / 数値の座標 (桁, 行) の 行座標、0 以上の整数
- 第3引数 - obj: 描画する文字(列) / 数値
- 第4引数 - color: 色を指定するパラメータ引数で、省略可能でデフォルトは 1 です。
この引数は、内部で使っているユーザー関数 grp_color() に渡されます。
引数の具体的な設定については grp_color() のリファレンスを参照。
- 第5引数 - size: フォントサイズを指定するパラメータ引数で、'l', 'm', 's' のいずれか。
これは省略可能で、省略時は 'm' になります。
'l' - 大フォント、'm' - 中フォント、's' - 小フォント
- 第6引数 - show: 1 のときは液晶に出力し、0 のときはVRAMへ転送するだけです。
これはパラメータ引数で、省略時は 1 になります。
※ 引数を5つ、値だけを指定するとエラーになります ⇒ 関数の引数は こちら を参照。
これはパラメータ引数で、省略時は 1 になります。
※ 引数を5つ、値だけを指定するとエラーになります ⇒ 関数の引数は こちら を参照。
※ 引数を5つだけ設定する場合は、パラメータと共に設定します。
例) line(5, 50, 30, 60, color=4) / line(5, 50, 30, 60, show=0)
例) line(5, 50, 30, 60, color=4) / line(5, 50, 30, 60, show=0)
※ フォントサイズの詳細 (CGモデル)
・'l' (大): 桁は 0~21、行は 0~7 | フォントピッチは 横16 dot、縦24 dot
・'m' (中): 桁は 0~31、行は 0~11 | フォントピッチは 横12 dot、縦16 dot
・'s' (小): 桁は 0~47、行は 0~17 | フォントピッチは 横 8 dot、縦12 dot
※ フォントサイズの詳細 (FXモデル)
・'l' (大): 桁は 0~20、行は 0~7 | フォントピッチは 横 6 dot、縦 8 dot
・'m' (中): 桁は 0~31、行は 0~9 | フォントピッチは 横 4 dot、縦 6 dot
・'s' (小): 'm' と同じ (↑)
・'l' (大): 桁は 0~21、行は 0~7 | フォントピッチは 横16 dot、縦24 dot
・'m' (中): 桁は 0~31、行は 0~11 | フォントピッチは 横12 dot、縦16 dot
・'s' (小): 桁は 0~47、行は 0~17 | フォントピッチは 横 8 dot、縦12 dot
※ フォントサイズの詳細 (FXモデル)
・'l' (大): 桁は 0~20、行は 0~7 | フォントピッチは 横 6 dot、縦 8 dot
・'m' (中): 桁は 0~31、行は 0~9 | フォントピッチは 横 4 dot、縦 6 dot
・'s' (小): 'm' と同じ (↑)
関数定義:
from casioplot import *
def locate(column, row, obj, color=1, size='m', show=1):
#set fontsize & pitch
#from 4th argument(size)
if isCG(): #CG model
dx={'s':8, 'm':12, 'l':16}
dy={'s':12, 'm':16, 'l':24}
else: #FX model
dx={'s':4, 'm':4, 'l':6}
dy={'s':6, 'm':6, 'l':8}
sz={'s':'small', 'm':'medium', 'l':'large'}
#data transfer to VRAM
draw_string(column*dx[size], row*dy[size], str(obj), grp_color(color), sz[size])
if show: #data transfer to screen
show_screen()
スクリプトの解説:
実行しているモデル(FXモデルかCGモデルか)の判定は自動で行います - ユーザー関数 isCG() 利用
▶ テキスト出力関数の追加:locate() をユーザーモジュールに追加 ⇒ こちら
▶ isCG() ユーザー関数 [CGモデルとFXモデルの判定方法] ⇒ こちら
▶ grp_color() ユーザー関数 ⇒ こちら
応援クリックをお願いします。励みになるので...