1

私は表面楕円で世界の風に取り組んでいますが、この楕円に高度を設定したいと思います。

メソッドを使用するmoveToか、コンストラクターで直接インスタンス化しようとしelevationましたが、何も機能せず、私の形状はまだ惑星に固定されています。

シェイプの作成方法は次のとおりです。

final SurfaceEllipse shape = new SurfaceEllipse();
shape.setRadii(100000, 100000);
shape.moveTo(Position.fromDegrees(50.0, 0.0, 50*20000)); // just a test
layer.addRenderable(shape);
4

1 に答える 1

2

これは単に であり、高度doubleと同じことを意味します(少なくともPositionのゲッターによると)。

ただし、SurfaceEllipseは次のように文書化されているSurfaceObjectインターフェイスを実装します。

SurfaceShape など、Globe の表面地形に描画されるレンダリング可能オブジェクトの共通インターフェース。SurfaceObject は Renderable および PreRenderable インターフェースを実装しているため、サーフェス オブジェクトは任意のレイヤーまたは任意のレンダリング コード内に集約できます。

そこに注目すべきキーワードは、「地球の表面地形に描かれている」です。高さを設定することはできません。その位置での地表の標高でなければなりません。したがって、それを読み取ることはできますが、設定することはできません。

別のクラスを使用して形状を作成することをお勧めします。クラスの継承構造を調べてみると、やりたいことが見つかるかもしれません。

AbstractGeneralShapeは、それがmodelPositionであることを次 のように文書化します。

このシェイプの地理的位置。高度は、この形状の高度モードに相対的です。

そのため、以下のクラスにAbstractGeneralShapeは高度モードの概念があります。

AbstractShapeにもありaltitudeMode、その下にpathがあり、最終的に高度モードを文書化するクラスです。

パスドキュメントの高度モードは次のとおりです。

パスの位置内の高度は、パスの高度モードに従って解釈されます。高度モードが WorldWind.ABSOLUTE の場合、高度は楕円体上の高さと見なされます。高度モードが WorldWind.RELATIVE_TO_GROUND の場合、高度はその位置の地形の標高に追加されます。高度モードが WorldWind.CLAMP_TO_GROUND の場合、高度は無視されます。

WorldWind.CLAMP_TO_GROUNDしたがって、必要なことを行うには、高度モードになっていないことを確認する必要があります。

それを念頭に置いてEllipsoidを見てください。

中心位置と 3 つの楕円体軸の半径によって定義される一般的な楕円体ボリューム。A を南北方向の半径、b を東西方向の半径、c を垂直方向 (高度が上がる方向) の半径とすると、A == B == C は球を定義し、 A == B > C は垂直方向に平らな回転楕円体 (円盤型) を定義し、A == B < C は垂直方向に引き伸ばされた回転楕円体を定義します。

これは、次のように構成されていると言うのは長く曲がりくねった方法です。

楕円

C を十分に小さくすると、2 次元の楕円がうまく近似されます。

ただし、実際にはまだ 3 次元です。PathaltitudeModeを除いて、私が見つけたもののほとんどは 3Dです。パスには、いくつかの興味深い地形プロパティがあります。

楕円を内側に開いておきたかったのかもしれません。トーラスと呼ばれる 3 次元です。それらは次のようになります。

楕円トーラス

残念ながら、worldwind API でこの形状を見つけることができません。ただし、引き抜いて独自の形状をゼロから作成することはできます。 http://goworldwind.org/developers-guide/how-to-build-a-custom-renderable/

API内でこれに最も近いのは、ポリゴンを取り、高さを追加できるExtrudedPolygonです。多角形の形状を定義するのはあなた次第です。押し出された形状は次のようになります。

押し出された葉

そして、彼らはいつも遊びのことを思い出させます:

プレイドファクトリー

それが役に立てば幸い。

于 2015-03-26T04:35:31.760 に答える