見出し画像

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に戻してある)

前回終了時の状態(カメラの回転を30°にした場合)

スクリーン座標系を入力する場所を作る。

スクリーン座標系の入力場所

スクリーン座標 (x',y')は次のようになるから
x'= x / z
y'= y / z

xの値はN3のセルに、zの値はP3のセルにあるから
『=N3/P3』を入力

y'も同様にして、『=O3/P3』を入力

これを下まで伸ばす。

これで、スクリーン座標への変換は完了。
次は、いよいよスクリーンを表示する。

⑥スクリーンをグラフで表示する。

今回はExcelのグラフを使用してスクリーンを表示していく。
使用するグラフの種類は、散布図。
さっそく、やってみよう。

スクリーン座標系のセル範囲を選択。
ここで一応 x',y' も選択範囲に入れた。(多分入れなくても大丈夫)

画面上部のメニューから『挿入』を選択し、グラフの散布図をクリック。

散布図の中の一番左上を選ぶ。

そうすると、グラフが表示される。

グラフの位置を少し、移動

ちょっとこれだと、何が表示されているのか分かりにくいので、
カメラの回転を一度0°に戻す。

カメラの回転を0°に戻す

そうするとこんな感じになった。

図15

もともと次のように点を入力したので、いい感じ。

奥行2のところに10の点を設定(第1回の図3を参照)

今回はスクリーンを横4:縦3の画面比にしたいので、
グラフの軸の設定を行っていく。

グラフの横軸の数字(ラベル)の部分を選択。
下の図のようになる

右クリックでメニューを表示。軸の書式設定を選択。

軸の書式設定で
軸のオプション
 境界値の
  最小値を『-1.0』に変更
  最大値を『1.0』に変更
 単位の
  主を『0.25』に変更

グラフの縦軸も同様にして、軸の書式設定を表示

軸の書式設定で
軸のオプション
 境界値の
  最小値を『-0.75』に変更
  最大値を『0.75』に変更
 単位の
  主を『0.25』に変更

これで、横4:縦3のスクリーンになった。

グラフのタイトル『y'』は必要ないので、
グラフを選択し、
グラフの右側に出てくる『緑色の+ボタン』をクリック、
グラフタイトルのチェックを外す。

これでスクリーンの設定はOK!

カメラが表示したい点に近すぎるので、
カメラを少し離してみる
カメラのz位置を0から-5に変更

これで完成!
もともと設定した10点がスクリーンの中に表示された。

カメラの向きを15°、30°と変えてみると

スクリーンが更新されていく(点が指定した角度で回転していく)

後は、カメラ位置やカメラの向きの値を変更してみて下さい。

お疲れさまでした。
今回はこれで終了。
好きに遊んでみて下さい。

この記事が気に入ったらサポートをしてみませんか?