Sorry if this has already been asked and answered, I couldn't find it.
I want to make a 3D plot the orbit of a SC around the Earth and have written a script to do that. I have also written a function to project the Earth but it doesn't map onto the figure correctly. Is there a way to plot onto the same figure from both the script and the function that is called?
Below is the main script:
positionData = data;figure(1)% Plot orbit in ECI reference
% Generation of a sphere
hold offEarth3D(1)hold onplot3(positionData(:, 1), positionData(:, 2), positionData(:, 3),'o-r');% grid; axis equal;
xlabel('X'); ylabel('Y'); zlabel('Z');title('Orbit ECI (inertial) (m)')
The Earth3D function is intended to project the Earth:
function Earth3D(figure)% Defines the Earth object and it's parameters as well as the plot size for the transformation.
[x,y,z] = sphere(1000);xe=x.*6378.137;ye=y.*6378.137;ze=z.*6356.752;[I,~] = imread('STK_map.jpg');figure(figure)hold onwarp(xe,ye,-ze,I);% ax1 = gca; %Creates object for the axis of the plot to allow it to be defined.
% ax1.YDir='normal'; %Defines y axis of the plot with + at the top.
axis equal;xlabel('x'); ylabel('y'); zlabel('z');
I have also attached the 'data' function which just contains the spacecraft's position data, and the 'STK_map' for the Earth image.
Thank you for any help you can provide.
Best Answer