2016-09-22 7 views
0

OSGが提供するいくつかのopenSceneGraphの例を実践しています。例の一つは、私は楕円体のテキストを見つけました。OSGの楕円と球

osgText::Text* createText(osg::EllipsoidModel* ellipsoid, double latitude, double longitude, double height, const std::string& str) 
{ 
    double X, Y, Z; 
    ellipsoid->convertLatLongHeightToXYZ(osg::DegreesToRadians(latitude), osg::DegreesToRadians(longitude), height, X, Y, Z); 

これは私のケースではうまくいきます。私は球でも同じことをすると思いました。この例では、楕円は緯度、経度、および高さに基づいて描かれています。ウィンドウサイズ/画面サイズに依存する半径の球を描きたい。残念ながら、私はosg :: Sphereクラスの画面座標を球のサイズに変換するのに失敗しました。

これを解決するために私を助けることができる人もいます。これを変換する何かがあるかもしれない、私は私の少ない経験のために出くわしていない可能性があります。

乾杯、 Inna。

答えて

0

osg :: Sphereはosg :: EllipsoidModelのような地理空間モデルではありません。

あなたが望む球の半径と同じ半径(赤道と極)の両方を持つosg :: EllipsoidModelを作成し、osg :: EllipsoidModelを使用します。

+0

こんにちは@ XenonofArcticus私はあなたが言ったように試みました。しかし、私は球としての結果を得ていません。 **ダブル緯度= 360.0;」 '二重経度= 360.0; // - 100' ** した後、私は楕円体モデル ** 'geode-> addDrawable(createText(楕円、緯度、lgntためにそれを使用してい、0、textList [t%textList.size()])); ** ** – Inna

+0

送信が紛失していますか? – Inna

+0

360のLatitudeは非官能的な数字です。 EllipsoidModelとそれを使用しています。これは、Stack Overflowのための良い質問ではありません。私はosg-usersメーリングリストでこれを続行し、この質問を削除することをお勧めします。 – XenonofArcticus