# How can I sepearte these two spehrical Objects - Earth and Moon - to get one Moon and one Earth? So far I get two Moon's or either two Earth

6 views (last 30 days)
Syntax on 23 Dec 2020
Commented: Syntax on 29 Dec 2020
I tried to plot the Earth and the Moon, but I failed. Each sphere has his own Topography and here is the problem. When I run the Project the two sphere's have the topography of the Moon. How can i separate these two functions to get a sphere with the look of the Earth and the other sphere as the moon?
clear
clc
close all
%%create sphere
[X,Y,Z] = sphere;
surf(X,Y,Z)
%% combines Earth topography and sphere
%earth gets a jpg file to get the look of the earth
h2 = findobj('Type','surface');
set(h2,'CData',earth,'FaceColor','texture','edgecolor','none')
axis equal
%% second sphere
hold on
r = 7,22;
X2 = X * r;
Y2 = Y * r;
Z2 = Z * r;
surf(X2+15,Y2-15,-Z2)
%% combines the second sphere with Moon topography
h = findobj('Type','surface');
set(h,'CData',moon,'FaceColor','texturemap','edgecolor','none')
axis equal
%%Earth and Moon spins
El = 24;
for Az = 0:360
view(Az,El)
pause(0.01)
end

Prudhvi Peddagoni on 29 Dec 2020
Hi,
When you are executing the below line, It is returning both the Earth's surface plot and Moon's surface plot. So you are editing both surface plots when you edit the object h.
h = findobj('Type','surface');
set(h,'CData',moon,'FaceColor','texturemap','edgecolor','none')
Instead of using find function, you can directly store the output of surf function as h2 and h variables in this case.
h2 = surf(X,Y,Z)
h = surf(X2+15,Y2-15,-Z2)
Hope this helps.
##### 1 CommentShowHide None
Syntax on 29 Dec 2020
Mate, thank you so much!! I have been wondering for so long, how I can solve this problem. Now it is fixed and works perfectly! Thank you.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!