2011-10-04 36 views
5

Là một dự án nhỏ, tôi đã nghĩ đến việc tạo một hoạt ảnh nhỏ giống như Google Earth. Tôi muốn phát lại dòng thời gian trong khi xoay quả địa cầu để tập trung vào các thành phố khác nhau. Hiện tại tôi có thể sử dụng cài đặt chế độ xem mặc định để hiển thị hình ảnh địa cầu với các thành phố được chỉ định theo điểm.Xem tọa độ của thành phố từ trên

enter image description here

Khi tôi cố gắng định hướng máy ảnh với một vector view nhìn xuống một thành phố (ví dụ Denver), tôi kết thúc với những điều sau đây:

enter image description here

Nhu cầu viewvector được tính cho một số điểm trong không gian phía trên địa cầu. Tuy nhiên, thử nghiệm và lỗi của tôi đã không đến trên bất kỳ loại quan điểm nhất quán với hầu hết trông giống như họ đang "bên trong" toàn cầu.

Điều tôi cần trợ giúp là chức năng cho vĩ độ và kinh độ của thành phố chọn một ViewVector đặt thành phố ở "trung tâm" của chế độ xem máy ảnh. Các mã mà sản xuất "bên cầu" xem sau:

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

Nhắc tôi về một đoạn video một đồng nghiệp thực hiện: http : //www.youtube.com/watch? v = U-4y0e1Jdcs –

Trả lời

10

Khi sử dụng ViewVector theo hình thức ViewVector->{v1, v2}, máy ảnh đang ngồi tại điểm v1 và chỉ theo hướng v2. Vì vậy, trong ví dụ của bạn, máy ảnh sẽ được ngồi ở nguồn gốc và được chỉ theo hướng Denver, trong đó sản xuất "bên trong toàn cầu" xem. Để máy ảnh nhìn xuống Denver, máy ảnh phải ngồi ở một điểm ngay phía trên thành phố, ví dụ: trong 2 SC[CityData["Denver", "Coordinates"] và được chỉ vào gốc, vì vậy ViewVector sẽ là một cái gì đó giống như

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

Với cài đặt này cho ViewVector quan điểm trở thành một cái gì đó giống như

enter image description here

Các vấn đề liên quan