飛行機データをファイルから読み込む

飛行機データをファイルから読み込む

 前回は飛行機をグルグル回してみました。
頂点データを配列にして、ちまちまと入力するのは疲れます。そこで、飛行機データをファイルから読み込むことをしてみます。

 飛行機データは、コンマ区切りのcsvデータにしました。といっても普通にTEXTファイルと同じように読み込めます。拡張子がCSVになっているだけといった感じです。
コンマ区切りのCSVデータはエクセルで読み込んで加工することもできますので便利です。

データの読み込みはDataReceiverというクラスファイルを作りました。
CSVデータを1行づつ読み込んで、コンマでトークンに分割して読み込んでいます。 ちとエラー処理が甘いので、変なファイルを読み込むと動かなくなります。
読み込んだデータは配列にして、CubeVertに渡しています。


 飛行機のデータが無いと表示できませんので、CubeVertでは、頂点データvt_numが0の間は処理をしないことにしました。ちとスマートなやり方ではありません。配列がnullの間は処理をしないみたいな処理の方がスマートだとは思います。


plane

実行すると、右図のようになります。
データが同じなので、同じ表示になりますが、フレームの枠の部分を少し変更しました。時刻表示を追加しました。

変更したのは、GFrame、CubeVert、DrawGraphiなどです。細かい説明は省略します。
それとViewpも一部変更しました。前からホイールで拡大縮小する際に、なんかしっくりこないなと思ってましたら、よく使うググル地図を拡大縮小するホイールの向きと逆だからと思いつきました。そこでホイールを奥に回すと拡大、手前へ回すと縮小となるように変更しています。また最小表示の係数も変更しました。







今回のプログラム一式を添付します。
飛行機データは、Ap1VertexData.csv です。javaプロジェクトと同じフォルダに入れて使います。