欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

大作业--月球绕地球旋转简版

程序员文章站 2022-05-21 09:37:41
...

大作业--月球绕地球旋转简版
matlab代码
close all;
clear;

oR=[cos(pi),-sin(pi),0;
sin(pi),cos(pi),0;
0,0,1];

stp=1;
nsp=20;
ox=-11;
oy=0;
oz=0;
%[u,v,w]=sphere;
x=0;

%[u,v,w] = sphere(20);

for i=0:1:nsp
%生成一个地球
R=3; %地球半径
[k,j,l] = sphere(200); %获得三维球面得坐标,生成三个n乘n得矩阵,n默认为20,三个矩阵分别是x,y,z单位球得坐标,然后是一列一列来的
k=reshape(k,1,[]); %B = reshape(A,m,n) 将矩阵A的元素返回到一个m×n的矩阵B。[]代表让他自己生成
j=reshape(j,1,[]); %这里相当于把矩阵展平,变成一向量
l=reshape(l,1,[]);
Tz=[cos(x),-sin(x),0; %地球自转速度
sin(x),cos(x),0;
0,0,1];
p=Tz*[k;j;l];

% k=k'*Tz(1,:);
% j=j'*Tz(2,:);
% l=i'*Tz(3,:);
plot3(p(1,:),p(2,:),p(3,:));  %分别取第一列第二列三列,也就是x,y,z
                              %plot3根据x,y,z绘制三维曲线,p(:,1)为取矩阵的第一列元素
                              %这里的xyz可以是三个数,或者三个相同维数的向量或者矩阵

% plot3(k,j,l);

%生成一个月亮  
  u=1;
  v=1;
  w=1;

% [u,w,v] = sphere(200);
%
% u=reshape(u,1,[]);
% w=reshape(w,1,[]);
% v=reshape(v,1,[]);
Tt=[6,0,0;
0,0,0;
0,0,0];
T=[cos(x),-sin(x),0; %每次转pi/10
sin(x),cos(x),0;
0,0,1];
Ty=[cos(pi/4),0,sin(pi/4);
0,1,0;
-sin(pi/4),0,cos(pi/4)];
Tx=[1,0,0;
0,cos(pi/6),-sin(pi/6);
0,sin(pi/6),cos(pi/6)];
op=TyTxTTt[u;v;w];

%plot3((op(1,:)+6),(op(2,:)+6),(op(3,:)+6));
%op=T*[u;v;w];

% [x,y,z] = sphere(20);
% surf=[x,y,z];

DrawFrame(oR, op,0);
x=x+pi/10;
oR1=[cos(pi+x),-sin(pi+x),0;
 sin(pi+x),cos(pi+x),0;
 0,0,1];
oR=Ty*Tx*oR1;

end

调用的一个函数
function DrawFrame(oR, op, fcla)

ToDeg=180/pi;
ToRad=pi/180;

%% 设置坐标轴端点
px=[2,0,0]’;
py=[0,2,0]’;
pz=[0,0,2]’;

px=oRpx+op;
py=oR
py+op;
pz=oR*pz+op;

%% 设置固定参考坐标轴端点
wx=[4,0,0]’;
wy=[0,4,0]’;
wz=[0,0,4]’;
wo=[0,0,0]’;

% %绘制固定参考坐标系
Connect3D(wo,wx,‘r’,0.5); hold on;
Connect3D(wo,wy,‘b’,0.5); hold on;
Connect3D(wo,wz,‘g’,0.5);hold on;
plot3(wo(1),wo(2),wo(3),‘rX’);
plot3(wo(1),wo(2),wo(3),‘rO’);

% %绘制局部坐标系
Connect3D(op,px,‘r’,2); hold on;
Connect3D(op,py,‘b’,2); hold on;
Connect3D(op,pz,‘g’,2);hold on;

view(145,33);
axis equal
axis([-10,10,-10,10,-10,10]);
xlabel(‘X’);
ylabel(‘Y’);
zlabel(‘Z’);
grid on;
pause(0.1);
drawnow;

if(fcla)
cla;
end

效果图
大作业--月球绕地球旋转简版

相关标签: 机器人学