2009-08-19 7 views
0

キューブのどの顔がクリックされたかを計算したいと思います。私はマウスを3Dダウンさせました。マウスの位置で、3Dで物を描くことができます。キューブの顔を取得する

私が今必要とするのは、どのような立方体の面が触れられているかを計算することだけです。

EG。私は関数を持っています。サイズ、位置、マウスの位置を渡すと、顔が返されます。上、下、左、右、前、後ろ。

音はシンプルですが、私は最も霧がありません。

おかげであなたは何APIを使用しているすべての、 SilentC

答えて

1

わからないが、OpenGLはあなた

1

ためにこれを行いselection APIは、あなただけで立方体のすべての顔のためにline plane intersectionを計算する必要がありましたカメラ位置とビュー平面上のマウス位置によって定義される線。平面上にあるがキューブの面にないすべての交差点を投げ捨て、最も近いものを選んでください。

キューブを12個のトリガーとして表現する場合は、線の三角形の交差を使用することもできます。しかし、どちらの場合でも、より具体的な回答にはもっと多くの情報を提供する必要があります。

+0

定義されている行は、カメラからマウスへのものでしょうか? –

+0

また、私はローテーションを補償していると仮定しています。 –

+0

カメラ**から無限遠までのマウス**から1つ以上の面(通常は1つのキューブのみがある場合は2つ)と交差します。辺、頂点、および線に平行な任意の面のような縮退の場合を無視します。後ろ向きの顔を取り除くことは価値があるかもしれません。ユーザーはほぼ確実に最も近い顔を望んでいますが、顔の中から選択するアフォーダンスを提供して、ユーザーが望むなら隠しオブジェクトを選択できるようにすることもできます。 – RBerteig

関連する問題