2011-10-04 18 views
5

Jako mały projekt, zastanawiałem się nad stworzeniem małej animacji podobnej do Google Earth. Chcę odtwarzać oś czasu, obracając globus do centrum w różnych miastach. Obecnie mogę użyć domyślnych ustawień widoku, aby renderować globus z miastami oznaczonymi punktami.Wyświetlanie współrzędnych miasta z góry

enter image description here

Kiedy próbuję skierować kamerę z widokiem wektor patrząc w dół na miasto (na przykład Denver), I skończyć z następujących czynności:

enter image description here

Potrzeby ViewVector do obliczenia dla jakiegoś punktu w kosmosie nad globusem. Jednak moja próba i błąd nie dotarły do ​​żadnego spójnego punktu widzenia, z którego większość wygląda na "wewnątrz" globu.

Potrzebna mi pomoc to funkcja, która w świetle szerokości i długości geograficznej miasta wybiera ViewVector umieszczając miasto w "środku" widoku kamery. Kod, który wyprodukował „wewnątrz świata” Widok następująco:

SC[{lat_, lon_}] := {Cos[lon \[Degree]] Cos[lat \[Degree]], 
    Sin[lon \[Degree]] Cos[lat \[Degree]], Sin[lat \[Degree]]}; 

Graphics3D[{ 
    Opacity[0.75], 
    Sphere[{0, 0, 0}, 0.99 ], 
    Map[Line[ 
Map[SC, 
    CountryData[#, "SchematicCoordinates"], {-2}]] &, 
    CountryData["Countries"]], {Yellow, PointSize[Medium], 
    Point[SC[CityData["Denver", "Coordinates"]]] 
    } 
    }, 
Boxed -> False, 
SphericalRegion -> True, 
ViewVector -> {{0, 0, 0}, SC[CityData["Denver", "Coordinates"]]} 
] 
+1

Przypomina mi film kolega wykonane: http : //www.youtube.com/watch? v = U-4y0e1Jdcs –

Odpowiedz

10

Podczas korzystania ViewVector w postaci ViewVector->{v1, v2} aparat siedzi w pkt v1 i jest skierowany w kierunku v2. W twoim przykładzie kamera będzie znajdować się w punkcie początkowym i będzie skierowana w kierunku Denver, co spowoduje wyświetlenie widoku "wewnątrz kuli ziemskiej". Aby kamera spoglądała w dół na Denver, kamera powinna znajdować się w punkcie bezpośrednio nad miastem, np. w 2 SC[CityData["Denver", "Coordinates"] i zaznaczyć na początku, więc ViewVector byłoby coś podobnego

ViewVector -> {2 SC[CityData["Denver", "Coordinates"]], {0, 0, 0}} 

z tym ustawieniem dla ViewVector widok staje się czymś w rodzaju

enter image description here

Powiązane problemy