I'd like to be able to force a realistic perspective when plotting large surface volumes. My issue is if I plot something like a satellite (represented by a small sphere in the example), and then plot something MUCH larger (i.e, the earth), then that small satellite ceases to become something I can view easily with the 3D camera toolbar.
In my example, if you plot the small sphere on its own, it's easy rotate around, zoom in and out etc. Then if you plot the earth, the axes will zoom out to fit both, but then if I place the camera back next to the satellite, it becomes nearly impossible to see unless the cameraviewangle is tiny, or else the camera zoom breaks entirely.
If I reset the axes to be centered around the satellite, (and turn clipping off) I'm still unable to get camera settings to make the earth not completely fill the screen, and behave more as if I was floating next to it. Additionally, the camera zoom seems to get stuck entirely, and is unable to be changed when this happens.
I would like something like the below picture (left), but with the satellite in full fidelity right next to the camera. At the moment, the satellite still seems far away, even though the camera position is right next to it. And if I do zoom in far enough, the satellite has some very odd rendering happening to it (while the earth takes up the entire screen).
In general, I suppose my problem boils down to something similar like "can I place a camera on the surface of the earth and have it look like I'm standing on it?". I feel like I just need to shrink the camera like crazy in order to get the results I'm interested in. Or maybe I just scale up the satellite by 1000x.
Thanks
close all; figure; hold on; grid on; axis equal
the_earth = {X.*radii, Y.*radii, Z.*radii};
surf(the_earth{1},the_earth{2},the_earth{3});
object = {shift+X.*radii, shift+Y.*radii, shift+Z.*radii};
surf(object{1},object{2},object{3});
plot3([0, shift],[0,shift],[0,shift],'r-');
set(gca,'cameratarget',[shift, shift, shift]);
set(gca,'cameraposition',[shift+300, shift, shift]);