2015-05-28 32 views
6

chcę, aby narysować linię na świecie z reprezentacji elewacji, coś takiego:Jak narysować linię z reprezentacji elewacji WorldWind

Elevation representation sketch

wiem, że mogę korzystać z łamaną reprezentować linię, ale jak wypełnić przestrzeń pod linią?

+0

Czy globus ma tutaj znaczenie, mam na myśli, czy to może być również proste? Czy powierzchnia powinna być podzielona na segmenty? –

+0

Absolutnie nie ma potrzeby segmentacji, celem jest tylko przedstawienie rzędnej linii –

+1

Czy jest to naprawdę związane z javafx? – gontard

Odpowiedz

2

Można użyć ścieżki, aby narysować linię. SetOutlineMaterial narysuje "kurtynę" podobną do tego, co chcesz.

Path path = new Path(pathPositions); //Arraylist of positions 
final BasicShapeAttributes attrs = new BasicShapeAttributes(); 
attrs.setInteriorOpacity(0.25); 
attrs.setInteriorMaterial(Material.BLACK); 
attrs.setOutlineMaterial(new Material(color)); 
attrs.setOutlineWidth(width); 
path.setAttributes(attrs); 
path.setDrawVerticals(true); 
path.setAltitudeMode(WorldWind.ABSOLUTE); 

Spójrz na Path Tryb wysokości, jak chcesz podążać za ziemią.

1

Można użyć wielokąta, po prostu dać to przypomina o tej samej długości i szerokości geograficznej, ale różnych wysokościach:

ArrayList<Position> pathPositions = new ArrayList<Position>(); 
pathPositions.add(Position.fromDegrees(28, -106, 3e4)); 
pathPositions.add(Position.fromDegrees(28, -106, 3e0)); 
pathPositions.add(Position.fromDegrees(35, -107, 9e0)); 
pathPositions.add(Position.fromDegrees(35, -107, 9e4)); 
pathPositions.add(Position.fromDegrees(28, -106, 3e4)); 
Polygon pgon = new Polygon(pathPositions); 
+1

I użyj setExtrude również do narysowania elewacji. –