ラベル 目標仕様 の投稿を表示しています。 すべての投稿を表示
ラベル 目標仕様 の投稿を表示しています。 すべての投稿を表示

2018年3月6日火曜日

目標仕様を見据えた学習 目標仕様の確認

学習開始から1週間ほど経って、色々なことをやって、言語にある程度慣れてきたかな、と思えるようになりました。これから先は、とりあえずの目標仕様を見据えた学習に切り替えました。

元々やりたいと思っていた目標仕様とは以下のものです。

概要

  • 測定点の3次元座標(X/Y/Z座標)及び測定値の大きさが入ったCSVファイルからデータを読み込み、XY平面への投影図をウインドウに描く。
  • ウインドウに描かれた投影図に対して、X軸と平行な平面(今回はY軸に垂直な平面のみを考える)、Y軸と平行な平面(今回はX軸に垂直な平面のみを考える)における断層画像を描く。

データの形式

  • データはCSVファイルで与えられ、X座標,Y座標,Z座標,測定データの形式。座標の最小解像度は1ピクセルとする。(つまり座標値は整数のみ)

ということで、これからのエントリーでは、この目標仕様を満足するプログラムを書くために必要な要素技術を中心にこれから学習を進めていったことを書いていきます。

上に書いた目標仕様を満たすプログラムを作るための要素技術として、当初以下のものを想定しました。

  • ウインドウに点が打てる
    Windowsのアプリケーションを作ったことがない人間からすると、Windowsのウインドウの中に点を1個打つだけでも、ハードルが高く感じるものです。
  • ファイルの読み出しができる
    Windowsでファイルを開く操作をすると出てくるダイヤログを使ってファイルを選択できるようにします
  • ウインドウ上でマウスのクリックが拾える
    マウスがクリックされたことをきっかけにして、何か動作を始める、というWindowsによくある動作を自分のプログラムで実現するにはどうしたらよいのかを学必要があります
  • ウインドウ上にあるマウスの座標が読み取れる(連続的に読み続ける)
    輪切りの絵を描く為に、主として操作性を良くする目的で、マウスカーソルの座標を連続的に読み続ける機能が必要です
  • ウインドウの座標系とデータの座標系の変換ができる
    データが持っている座標系とウインドウの中の座標系は当然違うはずです。描画する為には、データ座標系をウインドウ座標系に変換してあげる必要があります
  • 隠面処理のために、データの並べ替えができる
    隠面処理とは、奥にあるものが手前にあるものに遮られて見えない、ということを計算機上の処理で実現するものですが、今回は奥にある点から描き始めて、手前にある点が奥にある点を隠していくような描画方式にします。そのためには奥の方から描くようにデータの並べ替えが必要です

それに加えて、ウインドウのデザインが必要ですし、色々なエラーに対する対策をする必要がありますね。特に、エラーが出たらプログラムが止まってしまう、というのは困ります。

今回はこれで終わりにします。