Ich habe einige openSceneGraph Beispiele von OSG geübt. Eines der Beispiele, ich stieß auf Text auf dem Ellipsoid.Ellipsoid zu Sphere in 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);
Das funktioniert gut in meinem Fall. Dann dachte ich, das gleiche mit der Kugel zu tun. In diesem Beispiel wird das Ellipsoid basierend auf dem Lat, der Länge und der Höhe gezeichnet. Ich möchte die Kugel mit einem Radius zeichnen, der von der Fenstergröße/Bildschirmgröße abhängt. Leider konnte ich nicht sehen, was die Bildschirmkoordinaten in der osg :: Sphere-Klasse in Kugelgröße konvertiert.
Einige können mir helfen, dies zu lösen. Es könnte etwas geben, was dies konvertiert, vielleicht bin ich wegen meiner geringeren Erfahrung nicht gekommen.
Prost, Inna.
Hallo Herr @ XenonofArcticus Ich habe versucht, wie Sie sagten. Aber ich bekomme das Ergebnis nicht als Sphäre. ** Doppel Breite = 360,0;“ 'double Länge = 360,0; // - 100' ** und dann habe ich es verwende für Ellipsoid-Modell ** 'geode-> addDrawable (Create (Ellipsoid, Breite, lgnt , 0, textList [t% textList.size()])); '** – Inna
Fehle ich eine Übertragung? – Inna
Latitude von 360 ist eine nicht-sinnliche Nummer. Zeigen Sie mir einige tatsächliche Code, wie Sie erstellen EllipsoidModel und damit. Auch das ist keine gute Frage für Stack Overflow. Ich schlage vor, dass wir es auf der Mailingliste osg-users fortsetzen, und Sie löschen diese Frage. – XenonofArcticus