申し訳ございません。またしてもOpenGLの質問です。
OpenGLの関数で、gluLookAt関数とういうものがありますよね?
この関数は、視点の位置、目標(どこを見てるか)の位置を座標で指定してやるというこ
とらしいですが、視点の位置は問題ありません。しかし、自分の場合、x軸、y軸、z軸
に対して視点がどのくらい回転したかによって、目標の位置の座標を求めたいと思ってい
ます。 しかし、この方法だと、例えば、平面からの高さが1のところに視点があって、
平面に対して平行なところを見た場合、目標の位置の座標が求まらないのでは?と疑問を
持ちました。 わかりにくい質問かもしれませんが、何かいい解決方法はありますか?
または、別な関数を使った方がいいとかありますか? よろしくお願いします。
ちょっと疑問なんですが
>しかし、自分の場合、x軸、y軸、z軸に対して
>視点がどのくらい回転したかによって、目標の位置の座標を求めたいと思っています。
視点の座標が移動したからって、
目標の座標って変わっていいんでしょうか?
はい。視点の位置も変化して、見ている場所(目標の座標)も変わっても大丈夫です。
gluLookAt関数を使う代わりに、物体の方を動かすという方法も考えましたが、可能な
ら、物体は動かさず、視点だけを変えたいのですが・・・
ちょっと聞き方がわるかったですね.
すいません.
俺が言いたかったのは
>しかし、自分の場合、x軸、y軸、z軸に対して
>視点がどのくらい回転したかによって、目標の位置の座標を求めたいと思っています。
これはたとえば,常に視点から90度上を見てるとか,
そういう仮定が前提としてなければ
自分の視点がどのくらい回転したかによって,
目標の位置の座標を一意にきめられないと思うのですが,
どうでしょう.
>しかし、自分の場合、x軸、y軸、z軸に対して
>視点がどのくらい回転したかによって、目標の位置の座標を求めたいと思ってい
回転前の座標がわかっているなら,
簡単な三角関数で求められると思います.
マップさんありがとうございます。
わかっているのは、回転前の視点の座標と、その視点がどのくらい回転したか(ロール
角、ピッチ角、ヨー角)です。 紙に3次元の座標を書いたもののいまいちぴんときませ
んでした。 考え方としては、ベクトルとか利用するんですか? 初歩的なことですみま
せん。