⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rstar.c

📁 c源码
💻 C
字号:
/* This program reduces catalogue coordinates of a star * to apparent place. * * - S. L. Moshier, November, 1987 */#include "kep.h"int rstar( el )struct star *el;{double p[3], q[3], e[3], m[3], temp[3], polar[3];double T, vpi, epoch;double cosdec, sindec, cosra, sinra;int i;double log();/* Convert from RA and Dec to equatorial rectangular direction */loop:cosdec = cos( el->dec );sindec = sin( el->dec );cosra = cos( el->ra );sinra = sin( el->ra );q[0] = cosra * cosdec;q[1] = sinra * cosdec;q[2] = sindec;/* space motion */vpi = 21.094952663 * el->v * el->px;m[0] =    -el->mura * cosdec * sinra	- el->mudec * sindec * cosra	+       vpi * q[0];m[1] =     el->mura * cosdec * cosra	- el->mudec * sindec * sinra	+       vpi * q[1];m[2] =    el->mudec * cosdec	+       vpi * q[2];epoch = el->epoch;/* Convert FK4 to FK5 catalogue */if( epoch == B1950 )	{	fk4fk5( q, m, el );	goto loop;	}for( i=0; i<3; i++ )	e[i] = rearth[i];/* precess the earth to the star epoch */precess( e, epoch, -1 );/* Correct for proper motion and parallax */T = (TDT - epoch)/36525.0;for( i=0; i<3; i++ )	{	p[i] = q[i]  +  T * m[i]  -  el->px * e[i];	}/* precess the star to J2000 */precess( p, epoch, 1 );/* reset the earth to J2000 */for( i=0; i<3; i++ )	e[i] = rearth[i];/* Find Euclidean vectors between earth, object, and the sun * angles( p, q, e ); */angles( p, p, e );/* Find unit vector from earth in direction of object */for( i=0; i<3; i++ )	{	p[i] /= EO;	temp[i] = p[i];	}if( prtflg )	{	printf( "approx. visual magnitude %.1f\n", el->mag );/* Report astrometric position */	showrd( "Astrometric J2000.0:", p, polar );/* Also in 1950 coordinates */	precess( temp, B1950, -1 );	showrd( "Astrometric B1950.0:", temp, polar );/* For equinox of date: */	for( i=0; i<3; i++ )		temp[i] = p[i];	precess( temp, TDT, -1 );	showrd( "Astrometric of date:", temp, polar );	}/* Correct position for light deflection * relativity( p, q, e ); */relativity( p, p, e );/* Correct for annual aberration */annuab( p );/* Precession of the equinox and ecliptic * from J2000.0 to ephemeris date */precess( p, TDT, -1 );/* Ajust for nutation * at current ecliptic. */epsiln( TDT );nutate( TDT, p );/* Display the final apparent R.A. and Dec. * for equinox of date. */showrd( "    Apparent:", p, polar );/* Go do topocentric reductions. */dradt = 0.0;ddecdt = 0.0;polar[2] = 1.0e38; /* make it ignore diurnal parallax */altaz( polar, UT );return(0);}/* Compute stellar ephemeris for ELOBJECT at time TDT.  */ extern struct orbit *elobject;int dostar (){  rstar( (struct star *) elobject );  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -