Excelのグラフで3Dオブジェクトの頂点を表示する実験③
Excelの散布図を使えば、簡単な3D表示を行うことができるのではと思い、試しに実験してみた。
今回は第3回目。
第1回目では手順①~③まで行った。
第2回目では手順④を行った。
前回までの手順
①ワールド座標系の値を入力
②カメラ位置の入力欄を作る
③カメラを原点とした座標の計算
④カメラの回転を計算に入れる
今回はその続きを進めてとりあえずの完成を目指そう。
では、早速進めよう!
⑤スクリーン座標系を計算する
まずは、スクリーンをカメラの前に置く。
カメラの上空から見ると次の図のようになる。
カメラの回転も考えたカメラ座標系の点 (x,y,z) は、
スクリーン上では点 (x',y',z') に存在するように見える。
スクリーン上の位置を表すために、スクリーン座標系を考える。
スクリーンは平面で、z座標は一定なので、
基本的には (x',y')で表現することとする。
※z座標も考えるときは、カメラからの距離をz'とすると、(x'y'z') となる。
それでは、スクリーン座標系への変換を行っていく。
スクリーン座標系への変換は、簡単である。
カメラの回転も考えたカメラ座標系の点 (x,y,z)を
スクリーン上の位置 (x',y')に変換するとする。
スクリーンまでの距離を便宜上1とすると、
x'= x / z
y'= y / z
これで変換完了。
※ちなみに、スクリーンまでの距離を1ではなく、z'とすると
x'= x * (z'/ z)
y'= y* (z'/ z)
となる。
Excel上で数式を入れてみよう。
前回までのスクリーンショットがこちら
※一応、カメラの回転(カメラの向きxz平面の値を30に戻してある)
スクリーン座標系を入力する場所を作る。
スクリーン座標 (x',y')は次のようになるから
x'= x / z
y'= y / z
xの値はN3のセルに、zの値はP3のセルにあるから
『=N3/P3』を入力
y'も同様にして、『=O3/P3』を入力
これを下まで伸ばす。
これで、スクリーン座標への変換は完了。
次は、いよいよスクリーンを表示する。
⑥スクリーンをグラフで表示する。
今回はExcelのグラフを使用してスクリーンを表示していく。
使用するグラフの種類は、散布図。
さっそく、やってみよう。
スクリーン座標系のセル範囲を選択。
ここで一応 x',y' も選択範囲に入れた。(多分入れなくても大丈夫)
画面上部のメニューから『挿入』を選択し、グラフの散布図をクリック。
散布図の中の一番左上を選ぶ。
そうすると、グラフが表示される。
グラフの位置を少し、移動
ちょっとこれだと、何が表示されているのか分かりにくいので、
カメラの回転を一度0°に戻す。
そうするとこんな感じになった。
もともと次のように点を入力したので、いい感じ。
今回はスクリーンを横4:縦3の画面比にしたいので、
グラフの軸の設定を行っていく。
グラフの横軸の数字(ラベル)の部分を選択。
下の図のようになる
右クリックでメニューを表示。軸の書式設定を選択。
軸の書式設定で
軸のオプション
境界値の
最小値を『-1.0』に変更
最大値を『1.0』に変更
単位の
主を『0.25』に変更
グラフの縦軸も同様にして、軸の書式設定を表示
軸の書式設定で
軸のオプション
境界値の
最小値を『-0.75』に変更
最大値を『0.75』に変更
単位の
主を『0.25』に変更
これで、横4:縦3のスクリーンになった。
グラフのタイトル『y'』は必要ないので、
グラフを選択し、
グラフの右側に出てくる『緑色の+ボタン』をクリック、
グラフタイトルのチェックを外す。
これでスクリーンの設定はOK!
カメラが表示したい点に近すぎるので、
カメラを少し離してみる
カメラのz位置を0から-5に変更
これで完成!
もともと設定した10点がスクリーンの中に表示された。
カメラの向きを15°、30°と変えてみると
スクリーンが更新されていく(点が指定した角度で回転していく)
後は、カメラ位置やカメラの向きの値を変更してみて下さい。
お疲れさまでした。
今回はこれで終了。
好きに遊んでみて下さい。
この記事が気に入ったらサポートをしてみませんか?