Advertisement
dmkozyrev

example.m

Jun 3rd, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 1.51 KB | None | 0 0
  1. function example
  2.   e = 0.7;
  3.   i = pi/9;
  4.   Omega = pi/6;
  5.   omega = pi/3;
  6.  
  7.   cos_Omega = cos(Omega);
  8.   sin_Omega = sin(Omega);
  9.  
  10.   sin_omega = sin(omega);
  11.   cos_omega = cos(omega);
  12.  
  13.   cos_i = cos(i);
  14.   sin_i = sin(i);
  15.  
  16.  
  17.   e_x = e*(cos_Omega*cos_omega-sin_Omega*sin_omega*cos_i);
  18.   e_y = e*(sin_Omega*cos_omega+cos_Omega*sin_omega*cos_i);
  19.   e_z = e*(sin_omega*sin_i);
  20.  
  21.   a = 0;
  22.   b = 2*pi;
  23.   t = [a:(b-a)/180:b];
  24.  
  25.  
  26.  
  27.   x = y = z = zeros(1, length(t));
  28.  
  29.   R = 6371;
  30.   a = 5*R;
  31.    
  32.   for k = 1:length(t)
  33.     r = a*(1-e^2)/(1+e*cos(t(k)));
  34.     x(k) = r*(cos_Omega*cos(t(k)+omega)-sin_Omega*sin(t(k)+omega)*cos_i);
  35.     y(k) = r*(sin_Omega*cos(t(k)+omega)+cos_Omega*sin(t(k)+omega)*cos_i);
  36.     z(k) = r*sin(t(k)+omega)*sin_i;
  37.   end
  38.  
  39.   total_max = max([abs(x), abs(y), abs(z)]);
  40.  
  41.   x /= total_max;
  42.   y /= total_max;
  43.   z /= total_max;  
  44.   R /= total_max;
  45.  
  46.   [X, Y, Z] = sphere(25);
  47.   mesh(R*X, R*Y, R*Z);
  48.  
  49.   axis ([-1 1 -1 1 -1 1]);
  50.   hold on;
  51.   xlabel('x');
  52.   ylabel('y');
  53.   zlabel('z');
  54.  
  55.   [X, Y, Z] = sphere(25);
  56.   k = 1;
  57.   r = R / 10;
  58.   sputnik = surf(X*r+x(k), Y*r+y(k), Z*r+z(k));
  59.   h = plot3([0 x(k)], [0 y(k)], [0 z(k)], '-b');
  60.   x0 = x(k);
  61.   y0 = y(k);
  62.   z0 = z(k);
  63.   for k = 2:length(t)
  64.     plot3([x0, x(k)], [y0, y(k)], [z0, z(k)], 'r');
  65.     x0 = x(k);
  66.     y0 = y(k);
  67.     z0 = z(k);
  68.     delete(sputnik);
  69.     delete(h);
  70.     sputnik = surf(X*r+x(k), Y*r+y(k), Z*r+z(k));
  71.     h = plot3([0 x(k)], [0 y(k)], [0 z(k)], '-b');
  72.     pause(0.01);
  73.   end
  74. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement