- ベストアンサー
遠近法の計算方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
カメラからグランドの各点を見たときの、横方向の角度と、縦方向の角度を求め、それをX座標、Y座標にしたらどうですか。 3次元座標で考えて、 グランドの4隅を(-30,50,0),(-30,0,0),(30,0,0),(-30,50,0) カメラの位置を(0,-20,5)とすると、 グランド上の座標(x,y)に対し、 横方向の角度 X=arctan(x/(y+20)) 縦方向の角度 Y=arctan((y+20)/5)
その他の回答 (1)
- moumougoo
- ベストアンサー率38% (35/90)
視点vから物体上の点Rを結ぶ線とスクリーン平面の交点を求めればよいです。 スクリーン上の原点をp,座標を与える基底ベクトルをex, eyとするとき、 平面上の点qはある(a,b)の組があって q=p+a*ex+b*ey で与えられます。 一方、視点vから物体上の点Rを結ぶ線上の点qはある値kがあって q=v+k(R-v) で与えられます。この2つのqが一致するような、a,b,kを求めれば良い分けです。つまり、 p+a*ex+b*ey=v+k(R-v) ・・・(☆) をとけばよいわけです。 でも良く考えてください。スクリーンの基底ベクトルex, eyの取り方は自由です。 なので、それにはよらず点が決められるはずです。 ということは、aとかbとは関係なく、kだけが決められそう=簡単な計算がありそうです。 実際、外積×を使ってスクリーンの法線ベクトルを ez=ex×ey とすると☆の両辺にこれを掛けて内積・を取ると p・ez=v・ez+k(R-v)・ez よって、 k=(p-v)・ez/{(R-v)・ez} が求められます。 q=v+k(R-v) なので、kにこの値を代入すれば座標が求められます。 蛇足ですが、射影する平面の法線成分に着目すると、 kは、vからpへのベクトルとvからRへのベクトルの 射影する平面の法線成分の比になることが分かります。これは図面を書いてみるとよく分かります。 といった感じです。どうでしょうか?
お礼
ご丁寧な回答、ありがとうございました。 ただ、いまの私の知識では内容が難しく、理解するのに時間がかかりそうですが、確認させていただきます。
お礼
早速の回答、ありがとうございます。 Excelで検証してみました。 イメージ通りのものができそうです。 ネットで調べていたら、今回質問した内容は一点透視図法って言うらしいですね。 上記のやり方で二点透視図法についても確認してみます。