|
数学っぽくいうと・・・・原点と視点があって、その間を結ぶ線に交わるようにスクリーンという線を引きます。(右下図参照↓)
X,Y,Zの3つの位置座標から → スクリーン線上に映し出される位置座標を計算する方法です。
左の図をみてもらうと、上面図と側面図と投影透視図があるとおもいます。
投影透視図は奥にある点ほど中心に寄っていく特徴があります。
上面図と側面図から投影透視図を作ってみましょー。
上面図と側面図にあるX,Y,Zの座標から、投影透視の原理を用いて数学の式を作ってプログラムで動作する方法を考えてみます。
|
|
[ 計算式 - ツクリカタ ]
右上の図を元に公式にすると・・・・
X : VIEW_X = (CAMERA - Y) : (CAMERA - SCREEN)
なので↓
X / VIEW_X = (CAMERA - Y) / (CAMERA - SCREEN)
なので↓
VIEW_X = ((CAMERA - SCREEN) / (CAMERA - Y)) * X
※CAMERAとSCREENの値は、原点からの距離になります。
・・・となります。
今行った、点の座標のX,Yを使ってスクリーン上のX座標をわり出す計算を・・・こんどは、点の座標のZ,Yを使って同じように行えば、投影透視の計算の出来上がりです。
※計算の途中途中違うやり方でもできると思いますし、まだまだ方法が甘い部分もあると思いますが、参考になる部分があれば幸いです。
|