3d object rotation

15 visualizzazioni (ultimi 30 giorni)
Jae-Hee Park
Jae-Hee Park il 16 Giu 2022
Commentato: Jae-Hee Park il 17 Giu 2022
Hi!
I Just make 2 sphere which one of them is orientated on origin and the other positioned on far from origin.
then I want to rotate just origin sphere in z axis so it may looks like not changed I think.
but it rotating like double star.
please help me.
erad = 6000;
prad = 6000;
npanels = 180;
hold on;
axis equal;
axis vis3d;
[x, y, z] = ellipsoid(0,0,0,erad,erad,prad,npanels);
globe1 = surf(gca,x,y,-z,'FaceColor','none','EdgeColor',0.5*[1 1 1]);
globe2 = surf(gca,x+30000,y,-z,'FaceColor','none','EdgeColor',0.5*[1 1 1]);
view(3);
for i=0:100
rotate(globe1,[0 1 1],20); % I want just rotate globe1
pause(0.2);
end

Risposta accettata

Kevin Holly
Kevin Holly il 16 Giu 2022
Keep you axes limits consistent. That should help when viewing.
figure
erad = 6000;
prad = 6000;
npanels = 180;
hold on;
axis equal;
axis vis3d;
[x, y, z] = ellipsoid(0,0,0,erad,erad,prad,npanels);
globe1 = surf(gca,x,y,-z,'FaceColor','none','EdgeColor',0.5*[1 1 1]);
globe2 = surf(gca,x+30000,y,-z,'FaceColor','none','EdgeColor',0.5*[1 1 1]);
view(3);
xlim([0 40000])
ylim([-20000 20000])
zlim([-10000 10000])
for i=0:100
rotate(globe1,[0 1 1],20); % I want just rotate globe1
pause(0.2);
end
  2 Commenti
Jae-Hee Park
Jae-Hee Park il 17 Giu 2022
@Kevin Holly I want Globe 1 to rotate on its own and Globe 2 to stand still. The code above looks like globe1 orbits globe2.
Jae-Hee Park
Jae-Hee Park il 17 Giu 2022
I solve this problem just change like this
rotate(globe1,[0 1 1],20); --> rotate(globe1,[0 1 1],20,[0 0 0]);

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Graphics Object Properties in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by