How to get the mouse coordinates in a 3D spherical plot?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I plot the globe in 3D, and would like to get the latitude and longtitude of the current mouse position.
I tried to use get(gca,'CurrentPoint'), and I don't know how to map those coordinates to the equivalent latitude and longtitude on the map. I think the camera view has some effect as well.
figure('units','normalized','outerposition',[0 0 1 1]);
h=axesm ('globe','Grid', 'on');
axis off;
base = zeros(180,360); baseref = [1 90 0];
geoshow(base,baseref,'FaceColor','white')
load coast; % load all the map lines
plotm(lat, long); % plot the world maps
view([90 0 0])
0 commentaires
Réponse acceptée
darova
le 5 Mai 2019
If you have x,y,z coordinates use spherical system coordinate:
theta is longitude (from equator), phi - latitude
Latitude:
lat1 = asind(z); % asin() [0 .. 90]degree
Longitude
t = asind(y/cosd(lat1));
Choose angle for longitude (0 .. 360)
t = [t, 180-t, 180+t, 360-t];
x1 = cosd(t)*cosd(lat1);
y1 = sind(t)*cosd(lat1);
long1 = t( abs(x-x1+y-y1) < 1e-3 );
3 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Map Display dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!