このページはインターネットエクスプローラ4.0以降に調整されています
2002.05.31,00:34
Windows
トンネル 〜Tunnel〜

javaのサンプル@
javaのサンプルA
其ノ壱 〜トンネルとは〜
其ノ弐 〜極座標〜
トンネルとは,まるでトンネルの中を進んでいるかのようなエフェクトです.
一見3Dのように見えますが,実は2Dです.
(考えようによっては3Dとも言えると思うんですけどねぇ)
どうやっているかっていうと,あんまりな話ですが,テーブルです.
画面サイズと同じテーブルを用意してやるわけです.
つまり,ここでの主要な問題は,どうやってそのテーブルを作成するかって事になります.
トンネルを見るとわかりますが,極座標で考えるとやりやすいですね.
トンネルないに貼るタイルのx軸に角度を対応させて,
y軸に中心からの距離を対応させると,奥行きのないトンネル(?)が出来ます.
では,奥行きを考えましょう.

上から見たトンネルの断面図です.
水色がトンネルの中心線
黄緑がトンネルの壁
赤が視線のライン
黄色は投影するスクリーン
暗緑が距離の三角形
暗赤が距離の三角形
を表しています.
極座標の中心からの距離は,上の図でいうと,黄色と水色の交点(中心)から
赤色と黄色の交点(描画座標)までの距離 a に相当します.
同様に,赤色と水色の交点を目の位置とすると,b は,画面と視点の距離.
c は,トンネルの半径,d は,表示するトンネルの壁の距離です.
ここで,暗赤の三角形と,暗緑の三角形に注目してみると,
黄緑の線と水色の線が平行なので,相似だといえます.
したがって,
a : b = c : d
より,
a x d = b x c
求めたいのは,表示するトンネルの距離 d なので.
d = (b x c) / a
ここで,b x cは定数に出来ますね.
よって,y軸には,
(スクリーンと視点の距離 x トンネルの半径)/中心からの距離
を対応させます.
簡単でしたね.
あとは,実際にテーブルを作って,それを元に表示してやるだけです.
WinMain
RotoZoomer
Tunnel
Plasma
Fire
MetaBall
Entrance
Home
Back
|MSX|MOD|DEMO|the others|ContentsMap|GuestBook|Download|Guchi|Weblog|
| LINKs | ImpulseTracker Manual | Get DEMO |
(C)Copyright,all rights reserved,Yashok,1997-2004