現時点では、OpenGLで複数の座標系を持つソーラーシステムを使用しています。つまり、太陽はそれを周回する惑星の軌道座標系と太陽を表す円の座標系を持っています。すべての惑星は、その形のために独自の軌道方程式とCSを持っています。グラフィック - 世界座標からのTRIANGLE_FAN円座標とローカル座標の半径の決定
私はGL_TRIANGLE_FANを使って惑星の球を作りました。
次に、マウス座標を受け取ったときにglUnProjectを使用して、それらをウィンドウ座標からワールド座標に変換します。次に、これらのワールド座標をローカル座標に変換して、マウスクリックが惑星形状内にあるかどうかを調べようとします。もしそうなら、それは惑星の名前を出力します - 堅い部分は、惑星のクリック認識が機能するようになっています。
これを正しく行う方法がわかりません。私が使用している式が正しく動作していないと思われる場合はtrueを返します。(pow(target_LCS [0]、2)+ pow(target_LCS [1]、2))< pow(radius、2)クリックが形状にあるかどうかを判断するのではなく、決して真実ではありません。また、TRIANGLE_FANで半径を正しく決定する方法もわかりません。