コードに「午前 5 時の問題」があります。私のプログラムは3Dモデルを表示する必要があり、アークボール法を使用して回転する必要があります。これまでのところ、計算したものはすべて問題ありませんでした(信じています...)次にやりたいことは、カーソルをドラッグするたびに(ベクトルを作成することです) ) モデルはその位置から回転し続けます。
getFloatv を使用して mult を試してみましたが、モデルが開始点に戻り続けることに成功しませんでした。注:すべての関数でプッシュおよびポップマトリックスコマンドを使用したため、混乱は発生しません。本当の問題は、このクォートレイノンとマトリックス乗算を使用して互いに回転を追加する方法であると言えます。不足しているものはありますか?または何か置き忘れましたか?
ありがとう、
編集 :::::::::::::::: 更新されたコード:
ねえ、答えてくれてありがとう、でも私はまだ問題があります。回転が完了したときに if ステートメントを使用して multmatrix のみにしようとしましたが、連続した回転はありません。毎回最初にジャンプするだけです
glGetFloatv(GL_MODELVIEW_MATRIX,_oldRotationsQuatro);
glTranslatef(0.f,0.f,DRAWFARONZAXIS);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW); // Modeling transformation
glLoadIdentity();
glColor3d(1,1,1);
drawObject(model);
glRotated(model->getCurrRotatingAngle(),model->getRotatingAroundVector().getX(),
model->getRotatingAroundVector().getY(),
model->getRotatingAroundVector().getZ());
// if (end rotate)
glMultMatrixf(_oldRotationsQuatro);
drawCamera();
glPopMatrix();
回転はいいけど超スピード…
編集 ありがとう、私は何かを考え出しました。glmultmatrix は思った通りに機能しないので、別のマトリックスを追加して、古い節約を使用しました。
ありがとう!