ここから本文です

openglの座標について質問です

k31********さん

2010/2/1813:27:51

openglの座標について質問です

絶対座標系の原点からglRotatedやglTranslatedなどを何度もして移動した時、
今自分が原点からどの位置にいるか知ることはできませんか?

回転や平行移動を自分で一つずつ追って計算すればわかるとは思うんですが、
一発でわかる方法があれば教えていただきたいと思いまして質問しました。

よろしくお願いします。

補足>>nmike8さん
返信ありがとうございます。

それはわかっているんですが、行列の計算がめんどくさいので、
一発でわかる方法(gl~~()みたいな関数とか)がないかなーという話です。

なければそちらの方法でやるしかありませんね…。

閲覧数:
910
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

nmi********さん

編集あり2010/2/2318:49:58

原点にある点を、glRotate関数やglTranslate関数をつかって移動し、
結果としてたどり着いた位置を求めたいということでしょうか?

もしそうならば、可能だと思います。

glRotate関数やglTranslate関数での移動は、座標(x,y,z,w)に4×4の行列を演算しているということです。

具体的には、
移動後の位置をV'、平行移動行列をT1、回転移動行列をR1、現在の頂点座標をvとすると、
たとえば、『平行移動して回転移動する』場合は
V'=R1*T1*v
と表現でき、

(R1*T1)をまとめてMと表現すると
V'=M*v
となります。

これはいわゆる「モデリング変換」と呼ばれるものです。

教科書のような説明になってしまいましたが、

移動後の位置を求めるには、変換を行う行列を1つの4x4行列にまとめておき、
それを演算すればよいということです。
※行列を演算するという点に関しては、「アフィン変換」というキーワードで検索してみてください。

期待されるお答えかどうかはわかりませんが、何かのお役に立てれば幸いです。

-------
>>k311066さん。
>>一発でわかる方法(gl~~()みたいな関数とか)がないかなーという話です。

そうでしたか。
お役に立てなくて申し訳ありません。

質問した人からのコメント

2010/2/25 12:28:52

笑う 回答ありがとうございました☆
計算頑張ります(笑

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる