プロが教える店舗&オフィスのセキュリティ対策術

立方体を透視投影した時の、辺の長さを算出したいです
ご覧いただき、ありがとうございます。
表題にもあります通り、立方体をディスプレイに透視投影した時に、
表示される辺の長さを算出したいと考えております。

一辺が10cmの直方体があるとします。
これを「真正面」から見た状態を投影すると、正方形が表示されます。
(図のa)
このとき、画面上でも正方形の各辺は10cmで表示されるとします。

さて、この状態から、右辺を軸として水平方向に回転させると、
右辺を中心とした2つの長方形が表示されることになります。
(図のb)
このとき、回転角度を15度、30度、45度とした場合、
2つの長方形の上辺は、それぞれ何cmになるのでしょうか。

また、回転させた後の立方体を、今度は「少し上から見た」ように投影すると、
(つまり、水平軸を中心に回転させると)
3つの平行四辺形が画面に表示されることになります。
(図のc:ちょっと垂線が傾いていますが、本来は垂直です)
このとき、先ほど質問させていただいた2辺、および中心となる垂直の辺は、
それぞれ何cmになるのでしょうか。
なお、水平軸を中心に回転させる角度は、15度、30度、45度とします。


実際に図が描けるのだから、それを定規で測れば良いと思われるかも
知れませんが、計算で求める方法を求めておりますので、
なにとぞお知恵をお貸しいただけますよう、お願いいたします。

「立方体を透視投影した時の、辺の長さを算出」の質問画像

A 回答 (4件)

投影したときの辺の長さは視点の位置によって変わります。



視点が立方体からどのくらい離れているのか、または、無限遠点なのか。
図bを見ると、両端の縦の辺より中央の辺のほうが長く見えるので無限遠点ではないようですが。
(無限遠点の場合は縦の辺は全部同じ長さになります)

立方体の中心と視点との距離がわからないと辺の長さは計算できません。
    • good
    • 0
この回答へのお礼

早速ご回答いただき、ありがとうございました。
また、情報が足りず、失礼いたしました。

視点は、正面右上の頂点を、60cmの距離から見た場合とお考えください。
また、できれば無限遠点(平行投影)の場合の求め方につきましても
ご教授いただけますと、大変助かります。

お礼日時:2010/08/08 22:23

計算は面倒なので、考え方だけ書きます。



3次元座標で、視点(x0,y0,z0)から物体上の点(x1,y1,z1)を平面y=0に投影する場合を考えてみます。

2点(x0,y0,z0),(x1,y1,z1)を通る直線の式は、
(x-x0)/(x1-x0)=(y-y0)/(y1-y0)=(z-z0)/(z1-z0)
この直線と平面y=0との交点の(x,z)座標が投影座標になります。
x=(x0y1-x1y0)/(y1-y0)
z=(z0y1-z1y0)/(y1-y0)

点(x1,y1,z1)を、z軸を回転軸としてθ回転させると、
(x1*cosθ-y1*sinθ,x1*sinθ+y1*cosθ,z1)

点(x1,y1,z1)を、x軸を回転軸としてθ回転させると、
(x1,y1*cosθ+z1*sinθ,y1*sinθ-z1*cosθ)


視点を立方体の中心から60cm、回転軸を立方体の中心を通る垂直線と水平線、とすると、
立方体の頂点の位置を、
(5,5,5),(-5,5,5),(-5,-5,5),(5,-5,5),(5,5,-5),(-5,5,-5),(-5,-5,-5),(5,-5,-5)
視点を、(0,-60,0)
として、上述の式から投影座標を計算すれば、2点間の長さが計算できますね。

立方体の最初の位置を変えることによって、回転軸を自由に設定できます。


なお、図aで、視点の位置が立方体の中心と正面の正方形の中心とを通る直線上にないと、投影図は正確な正方形にはなりません。
なので、視点の位置が正面右上の頂点から60cmとのことですが、どの方向からなのかがまだあいまいです。
    • good
    • 0

#2です。

訂正です。

点(x1,y1,z1)を、x軸を回転軸としてθ回転させると、
(x1,y1*cosθ+z1*sinθ,y1*sinθ-z1*cosθ)

(x1,y1*cosθ-z1*sinθ,y1*sinθ+z1*cosθ)


視点の位置が立方体の中心と正面の正方形の中心とを通る直線上にないと、投影図は正確な正方形にはならないと書きましたが、大丈夫みたいです。

立方体の頂点の位置を、
(0,0,0),(-10,0,0),(-10,-10,0),(0,-10,0),(0,0,-10),(-10,0,-10),(-10,-10,-10),(0,-10,-10)
とすれば正しく計算できるかもしれません。
    • good
    • 0

再度訂正です。



立方体の頂点の位置が#3で書いたものだと、視点が立方体の上面と同じ高さになります。

図bのようにするには、視点の高さが立方体の中央になっているので、
視点までの距離が60cmより少し長くなりますが、立方体の位置を5cm上に上げて、
(0,0,5),(-10,0,5),(-10,-10,5),(0,-10,5),(0,0,-5),(-10,0,-5),(-10,-10,-5),(0,-10,-5)
としたほうがいいでしょう。
    • good
    • 0
この回答へのお礼

急用が入ったため、お礼を申し上げるのが遅くなりました。申し訳ございません。

何度も丁寧に解説を頂き、ありがとうございました。大変勉強になりました。
ご回答の内容をもとに、計算させていただきたいと思います。
その過程で、もしまた不明な点がございましたら、再度この掲示板で質問させていただきます。

ありがとうございました。

お礼日時:2010/08/10 08:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!