みなさん、こんにちは。
画像に見られるように、
O(ラインストライプのセット)という名前のオブジェクトがあります。そのオブジェクト座標系は(x'、y'、z')です。次のコードスニペットを使用して、OpenGLシーンでこのオブジェクトを変換および回転します。
glPushMatrix();
glTranslatef(Oz, Oy,Oz);
glRotatef(rotationX , 1.0, 0.0, 0.0);
glRotatef(rotationY, 0.0, 1.0, 0.0);
glRotatef(rotationZ, 0.0, 0.0, 1.0);
contour->render();
glPopMatrix()
;
私はHと呼ばれる点を持っています。これは、を使用して(hx、hy、hz)世界座標に変換されます。
glPushMatrix();
glTranslatef(hx,hy,hz);
glPopMatrix();
私が正しければ、(Oz、Oy、Oz)と(hx、hy、hz)は世界座標です。
ここで、私がやりたいのは、Oのオブジェクト座標系に対するH(hx、hy、hz)の位置を計算することです。(x'、y'、z'); 私が理解したように、私はオブジェクトOの逆変換を計算し、それらを点Hに適用することによってこれを行うことができます。
これに関するヒントはありますか?OpenGLは逆行列計算のための関数を提供しますか?どういうわけか逆行列を見つけた場合、それらを乗算する順序は何ですか?
注:「ハンマー」のようなツールを実装したいのですが、ポイントHで、半径Rの球を描画します。ユーザーはこの球を使用してオブジェクトOをハンマーのように切り刻むことができます。これを2Dで実装したので、 (x'、y'、z')に対するハンマーの位置を計算できる場合は同じアルゴリズム
前もって感謝します。