2011-12-02 12 views
-2

現時点では、OpenGLで複数の座標系を持つソーラーシステムを使用しています。つまり、太陽はそれを周回する惑星の軌道座標系と太陽を表す円の座標系を持っています。すべての惑星は、その形のために独自の軌道方程式とCSを持っています。グラフィック - 世界座標からのTRIANGLE_FAN円座標とローカル座標の半径の決定

私はGL_TRIANGLE_FANを使って惑星の球を作りました。

次に、マウス座標を受け取ったときにglUnProjectを使用して、それらをウィンドウ座標からワールド座標に変換します。次に、これらのワールド座標をローカル座標に変換して、マウスクリックが惑星形状内にあるかどうかを調べようとします。もしそうなら、それは惑星の名前を出力します - 堅い部分は、惑星のクリック認識が機能するようになっています。

これを正しく行う方法がわかりません。私が使用している式が正しく動作していないと思われる場合はtrueを返します。(pow(target_LCS [0]、2)+ pow(target_LCS [1]、2))< pow(radius、2)クリックが形状にあるかどうかを判断するのではなく、決して真実ではありません。また、TRIANGLE_FANで半径を正しく決定する方法もわかりません。

答えて

0

OpenGLはオブジェクトについて何も知らない。 GL_TRIANGLE_FANで球を作成するときは、球を描く場所と半径をopenglに指示するコードが必要です。交差点テストをしたい場合は、惑星の半径と惑星の位置あなた自身を追跡する必要があります。したがって、描画コードから指定された位置と半径を使用してください。

関連する問題