3d object rotation

12 次查看(过去 30 天)
Jae-Hee Park
Jae-Hee Park 2022-6-16
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

采纳的回答

Kevin Holly
Kevin Holly 2022-6-16
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 个评论
Jae-Hee Park
Jae-Hee Park 2022-6-17
@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 2022-6-17
I solve this problem just change like this
rotate(globe1,[0 1 1],20); --> rotate(globe1,[0 1 1],20,[0 0 0]);

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Geodesy and Mapping 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by