2

私は c++ と openGL の初心者なので、私のコーディング スキルは一流ではありませんが、すぐに習得できることを覚えておいてください。

ルービック キューブが好きなので、自分の創造性を解き放つことにしたので、現在 3D ルービック キューブを作成しており、各キューブ ピース (コア ピースを除く 26 ピース) をクワッドを使用して個別に表現しています (計画中)。テクスチャの使い方を学んだ後、将来的にテクスチャを使用するため)

現在、glRotatef を使用してカメラを回転させ、立方体全体を見ることができます。

私が遭遇した主な問題は、各面を独自に回転させ、キューブを追跡して、現在属している面を決定し、面が回転した場合に影響を受けるかどうかを決定することです。

この時点で、glRotatef を使用しても前に進むのに何の役にも立たないことに気付いたので、検索してクォータニオンについて知り、それらに関するチュートリアルをたくさん読みましたが、それらを実装して使用する方法がわかりません。

これは私が読んでいる最後のチュートリアルです:

http://www.cprogramming.com/tutorial/3d/quaternions.html

私のリクエストは、それを実装して表示機能で使用する方法の非常に簡単な例です。

立方体の追跡に関しては、現在、各ピースに 6 つのブール値を使用して、中央のピースの位置を決定することを考えています。

顔の回転を管理する上で他に良いアイデアやコンセプトがあれば教えてください。

よろしく、、

4

1 に答える 1

0

私が遭遇した主な問題は、各面を独自に回転させ、キューブを追跡して、現在属している面を決定し、面が回転した場合に影響を受けるかどうかを決定することです。

それが基本的にあなたのアルゴリズム全体です。あなたができることは、6つの「顔」を保持するデータ構造を持つことです。これらの面は立方体の側面です。各面には、NorthFace、SouthFace、EastFace、および WestFace へのポインターがあります。また、各面には、3 列の立方体の 3 つの行が含まれます。これで、フェイスを上下に移動するなどの必要な操作が完了したはずです。

于 2012-11-17T20:34:58.243 に答える