[新企画]Poke-Pro
今回、新たに開始する企画Poke-Pro
では、ポケコンで作成したプログラムを投稿していく企画です。シリーズとなります。BASIC言語に軸を置き、気まぐれでC言語にも触れていきます。
はじめに
こんにちは、bockringです。シリーズ投稿の1本目は、関数グラフの描画です。
描画する関数
今回は、$y=f(x)=ln(x)$のグラフを描画します。これをGeoGebraに描画させると以下の様になります。
当たり前ですが綺麗に描画できています。
今回はこれをポケコンのフルグラフィック液晶に描画させていきます。
そのために少しずつ式は変更しています。
目標と妥協点
まず目標です。以下の点を実装します。
- X軸とY軸の軸線の描画
- 軸線の端(画面端)に
X
,Y
ラベルを表示 - 1pxの移動でXは0.1変化
逆に妥協点は、
- 描画速度(機械語での描画はしません)
- 座標の表示
- 点と点の間の線
- 表示範囲の自動調整
などです。これらを踏まえて実装します。
実装
BASICで実装します。ポケコンの液晶は点灯/無点灯の2レベルですから、明暗度と色の設定は不要です。PSET (X,Y)
で点を打てます。
GRAPHln.TXT
10 CLS :PRINT "Y":PRINT "":PRINT " X"
20 LINE (0,23)-(143,23)
30 LINE (6,0)-(6,47)
40 FOR X=0.1 TO 14.3 STEP 0.1
50 Y=47-8*( LN X)
60 PSET (10*X+6,Y-23)
70 NEXT X
80 PRINT "":PRINT ""
これがコードです。スマートでないことは重々承知なのですが、自動調整というのは難しすぎて追加できませんでした。
そこそこ綺麗に自然対数のグラフが描けているんじゃないかなと思います。
改善点
- 軸線の端に端の地点の座標の表示
- 画面の空きスペースに表示している関数を表示
といったところです。
おわりに
前回のレビュー記事とは逆に短めの記事をシリーズとして投稿していきます。
今後も短時間で読める記事をこのシリーズで投稿していく予定です。
シリーズ記事の一覧