clear all; cspice_furnsh( 'd:\Documents and Settings\user\Мои документы\MATLAB\astro\mice\data\standard.tm' ); TIMFMT = 'DD.MM.YYYY ERA HR:MN ::RND::JCAL::UTC'; % JCAL - Юлианский календарь, Рождество было до Григореанской реформы TIMLEN = 35; % выводимый формат времени % начальный интервал времени et=cspice_str2et ( '01-01-2000' ); observer='CAIRO' ; % место наблюдения Каир (Египет) [~, lon, ~, ~, ~] = get_observer (observer); % узнать долготу места для местного солн.врем. % Lon of pl. crds = 'CYLINDRICAL' ; crd = 'LONGITUDE' ; % ищется эклиптическая долгота adj = 0.0; MAXWIN = 20000; MAXIVL = MAXWIN / 2; abcr = 'LT+S'; % учитывать оберацию и скорость света, хотя это излишне planets = {'Jup', 'Sat', 'Ven', 'Mars', 'Mer', 'Sun', 'Moon'; ... 'JUPITER BARYCENTER', 'SATURN BARYCENTER', 'VENUS', 'MARS', 'MERCURY', 'SUN', 'MOON'}; dots = [6,5,4,4,4,30,30]; colors = [[0.5 0 0], [0 0 0.5], [0.5 0.5 0], [0.7 0.2 0.1], [0.5 0 0], [0.7 0.7 0], [0.4 0.4 0.1] ]; lats = [0,0,0,0,0,0,0]; lons = [0,0,0,0,0,0,0]; % позиции планет на 9 градаций по каждому периоду fl=0; % akfu n=numel(planets(1,:)); % количество записей for ii=1:n target=planets(2,ii); [pos, ~] = cspice_spkpos ( target, et, 'ECLIPJ2000', abcr, observer); % позиция планеты [~, lon, lat] = cspice_recrad(pos); % картезианские координаты в радиальные небесной сферы lats(ii)=cspice_convrt(lat,'radians','degrees'); lons(ii)=cspice_convrt(lon,'radians','degrees'); end % вывод графика гороскопа scrsz = get(0,'ScreenSize'); figure('Name','Зодиак','NumberTitle','off', 'Position',[1 scrsz(4)/2.5 scrsz(3) scrsz(4)/2]); hold on p_name={horzcat('Прорисовка зодиака ', cspice_timout( et, 'DD.MM.YYYY ERA HR:MN:SC ::RND::JCAL::UTC'), ' JCAL');' '}; title(p_name); % p=scatter(lons(:), lats(:), dots(:), colors(:), 'filled'); n=numel(lons(:)); % количество записей for ii=1:n text(lons(ii)+5,lats(ii)+3, planets(1,ii), 'HorizontalAlignment','right') p=scatter(lons(ii), lats(ii), dots(ii), colors(ii), 'filled'); end Ax1=gca; grid on axis('image') axis([0 360 -10 +10]) set(Ax1,'XColor', [0.5 0 0]) % ось по х - эклиптика set(gca,'XTick', [31, 56, 92, 118, 137, 172, 215, 236, 266, 296, 326, 349]) set(gca,'XTickLabel',{' Овен', ' Телец', ' Близнецы', ' Рак', ' Лев', ' Дева', ' Весы', ... ' Скорпион', ' Стрелец', ' Козерог', ' Водолей', ' Рыбы'}) ax=axis; % вверху вторая шкала равномерной 30 градусной разбивки зодиака Ax2=axes('Position',get(Ax1,'Position'),'XAxisLocation','top'); set(Ax2,'color','none') set(Ax2,'xtick',(0:30:360)); set(Ax2,'xticklabel',(0:30:360)) set(Ax2,'XColor', [0 0.7 0]) grid on axis('image') axis(ax); set(gca,'box','off'); cspice_kclear