OpenGLについてです。

[戻る]
smile [E-Mail] 2002/12/06(金) 19:44:42
申し訳ございません。またしてもOpenGLの質問です。

OpenGLの関数で、gluLookAt関数とういうものがありますよね?
この関数は、視点の位置、目標(どこを見てるか)の位置を座標で指定してやるというこ
とらしいですが、視点の位置は問題ありません。しかし、自分の場合、x軸、y軸、z軸
に対して視点がどのくらい回転したかによって、目標の位置の座標を求めたいと思ってい
ます。 しかし、この方法だと、例えば、平面からの高さが1のところに視点があって、
平面に対して平行なところを見た場合、目標の位置の座標が求まらないのでは?と疑問を
持ちました。 わかりにくい質問かもしれませんが、何かいい解決方法はありますか?
または、別な関数を使った方がいいとかありますか? よろしくお願いします。

マップ 2002/12/07(土) 11:22:36
ちょっと疑問なんですが

>しかし、自分の場合、x軸、y軸、z軸に対して
>視点がどのくらい回転したかによって、目標の位置の座標を求めたいと思っています。

視点の座標が移動したからって、
目標の座標って変わっていいんでしょうか? 

smile [E-Mail] 2002/12/07(土) 15:09:43
はい。視点の位置も変化して、見ている場所(目標の座標)も変わっても大丈夫です。
gluLookAt関数を使う代わりに、物体の方を動かすという方法も考えましたが、可能な
ら、物体は動かさず、視点だけを変えたいのですが・・・

マップ 2002/12/07(土) 15:43:28
ちょっと聞き方がわるかったですね.
すいません.
俺が言いたかったのは

>しかし、自分の場合、x軸、y軸、z軸に対して
>視点がどのくらい回転したかによって、目標の位置の座標を求めたいと思っています。

これはたとえば,常に視点から90度上を見てるとか,
そういう仮定が前提としてなければ
自分の視点がどのくらい回転したかによって,
目標の位置の座標を一意にきめられないと思うのですが,
どうでしょう.

>しかし、自分の場合、x軸、y軸、z軸に対して
>視点がどのくらい回転したかによって、目標の位置の座標を求めたいと思ってい

回転前の座標がわかっているなら,
簡単な三角関数で求められると思います.

smile [E-Mail] 2002/12/08(日) 00:25:27
マップさんありがとうございます。

わかっているのは、回転前の視点の座標と、その視点がどのくらい回転したか(ロール
角、ピッチ角、ヨー角)です。 紙に3次元の座標を書いたもののいまいちぴんときませ
んでした。 考え方としては、ベクトルとか利用するんですか? 初歩的なことですみま
せん。

古いスレッドには追加発言できません。