2016-09-22 247 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); 

這對我的情況很好,然後我想對球體也做同樣的事情。在這個例子中,基於lat,long和height繪製橢圓體。我想畫半徑取決於窗口大小/屏幕大小的球體。不幸的是,我沒有看到在osg :: Sphere類中將屏幕座標轉換爲球體大小。

有人可以幫助我解決這個問題。可能有些東西可以改變這種情況,也可能是因爲我的經驗不足而沒有遇到。

乾杯, Inna。

回答

0

osg :: Sphere不是像osg :: EllipsoidModel這樣的地理空間模型。

只需創建一個osg :: EllipsoidModel,其中兩個Radii(赤道和極座標)與您希望的球體半徑相同,並使用osg :: EllipsoidModel。

+0

嗨@XenonofArcticus先生我已經試過了,如你所說。但我沒有把結果看作是球體。 **雙緯度= 360.0;」 '雙經度= 360.0; // - 100' ** ,然後我使用它爲橢球模型 **'geode-> addDrawable(createText(橢球,緯度,lgnt ,0,textList [t%textList.size()]));'** – Inna

+0

我是否缺少任何傳輸? – Inna

+0

緯度是360是一個非感性數字 顯示我如何創建一些實際的代碼EllipsoidModel並使用它。此外,這不是一個好的問題堆棧溢出。我建議我們繼續在osg-users郵件列表中,並且你刪除這個問題。 – XenonofArcticus