お久しぶりです。久しぶりにMSXを使っています。
そういえば高校で気象観測所のデータを入力するプログラムを作ったことがありました。
ラジオを再生しながら入力していたのですが放送が早すぎて
MSX2+のマシンで間違えなく入力できればOKですが修正になると巻き戻したりしていました。
ただINPUT命令の入力だったのでもう少し改良すればできたかなと思います。
というわけで学生のみなさんは夏休みが近いので自由研究になればと
今回は経度緯度を入力できるものを作ってみました。
以前は九州の白地図をなぞったのでもっと正確に描いてみたいのもありました。
画面はSCREEN7で横の解像度を上げてみます。フォントが細くなっています。
まず、原点から125.0加算します。この125から150までを加えていきます。
125,126,127で、このままでは1度ごとなので+0.01とか加算していけばよいです。
1度○分にするには30分の1(0.033)とか60分の1(0.016)くらいにすればよいですね。
どちらも循環小数なので丸める必要があります。
緯度と経度の縦横の比率のバランスも重要なので結局、こんなふうになりました。
まだ地形図データは空ですが日本近海のエリアは完成しました。
地名と経度と緯度を入力することができます。
これで正確な地形データを作ってキャッシュで保存すればOKです。
ほとんどテキストデータになりそうな感じですね。
天気図の用紙を買ってNHKラジオで気象データを入力していましたね。
今ではサイトがあるようです。
気象通報(漁業気象通報放送原稿) 過去データ/ログ/聞き逃し/アーカイブ (kisho-tsuho.com)
日本近海の地形データのサイズだったのでズームアップして関東から描いていきます。
今年はワールドマップエディタを考えていて超広大なスーパーマップエディタを考えることになりました。
今年は地図に縁がありそうです。さて、
とりあえず、関東地方の沿岸から描いてテストしていきます。
表示の粗さとか地点数を減らせばMSXパソコンでも複雑なマップは描けます。
8ビットでは小数点計算はできませんがMSXBASICは浮動小数点演算が可能です。
0~65535までの数値を扱うことができるので6.5535とか655.35とか移動することができます。
もともと16ビットが得意とするものですがソフトウェア的にBASIC内で精度を上げて(倍精度)います。
浮動小数点演算プロセッサは16ビットからでMSXは実務計算用のプロセッサはないですが、
エミュレータで速度を上げればある程度カバーすることが可能です。
これは経度、緯度を仮想座標として座標化するものですが、3Dゲームのマップ設計に使うことも可能です。
膨大なデータでRAMには入らないのでVRAMにイメージとして残したいです。
分度の60進を10進に変えて入れます。
今回はDEF(DEFINE:デファイン)のFN(FN:ファンクション)命令を定義します。
DEF FNXとあらかじめで定義関数FNXを定義しておけば計算をしてくれます。
サブルーチンを作らなくてもOKになります。今回は何度も同じ処理をするので採用しています。
こんなふうに630以下のデータを入力すれば南西の静岡県沖、北東の福島県沖の2点を表示します。
これを座標範囲にします。
経度緯度の地点データを入れるとこんなふうになります。
プログラムは開始座標の原点を34.5として*60は倍率です。
カーナビ風に言えば数値が高くなるほど詳細図になり低いと広域図になります。
ここでは図面の大きさを見るために2点を表示します。
ちょっと粗いですが、こんな出力になりますね。
ひたちなか付近を試しにやってみましたが港湾部はつぶれたり
銚子の利根川の河口は対岸の座標を出してみましたがやはり
つぶれるので河口と港湾部は省くことにしました。
でも何とか京浜地帯と横浜港がわかるかなといった具合です。