Ejemplo n.º 1
0
void KSPlanetBase::findPosition( const KSNumbers *num, const dms *lat, const dms *LST, const KSPlanetBase *Earth ) {
    // DEBUG edit
    findGeocentricPosition( num, Earth );  //private function, reimplemented in each subclass
    findPhase();
    setAngularSize( asin(physicalSize()/Rearth/AU_KM)*60.*180./dms::PI ); //angular size in arcmin

    if ( lat && LST )
        localizeCoords( num, lat, LST ); //correct for figure-of-the-Earth

    if ( hasTrail() ) {
        addToTrail( KStarsDateTime( num->getJD() ).toString( "yyyy.MM.dd hh:mm" ) + i18nc("Universal time", "UT") ); // TODO: Localize date/time format?
        if ( Trail.size() > TrailObject::MaxTrail )
            clipTrail();
    }

    findMagnitude(num);

    if ( type() == SkyObject::COMET ) {
        // Compute tail size
        KSComet *me = (KSComet *)this;
        double TailAngSize;
        // Convert the tail size in km to angular tail size (degrees)
        TailAngSize = asin(physicalSize()/Rearth/AU_KM)*60.0*180.0/dms::PI;
        // Find the apparent length as projected on the celestial sphere (the comet's tail points away from the sun)
        me->setTailAngSize( TailAngSize * fabs(sin( phase().radians() )));
    }

}
Ejemplo n.º 2
0
int main(int argc, char *argv[]) {
	char result[20] = "";
	int decimal_number, number_magnitude, i, result_index, magnitude;
	
	if (argc != 2) {
		print_usage();
		exit(-1);
	}
	
	decimal_number = atoi(argv[1]);
	if (decimal_number < 1 || decimal_number > 3999) {
		print_usage();
		exit(-1);
	}
	result_index = 0;
	
	while (decimal_number>0) {
		magnitude = findMagnitude(decimal_number);
		for(i=0; i<decimal_number/values[magnitude] && i<3; i++) {
				if(magnitude%2 == 0) {
					strncpy(&(result[result_index++]),symbols[magnitude],1);
				} else {
					strncpy(&(result[result_index++]),symbols[magnitude],2);
					result_index++;
				}
		}
		if (decimal_number > 1) {
			decimal_number = decimal_number %values[magnitude];
		} else {
			break;
		}
	}
	printf("Result: %s\n", result);
	exit(0);
}
Ejemplo n.º 3
0
void KSPlanetBase::findPosition( const KSNumbers *num, const dms *lat, const dms *LST, const KSPlanetBase *Earth ) {
	findGeocentricPosition( num, Earth );  //private function, reimplemented in each subclass

	if ( Earth ) setRearth( Earth );

	if ( lat && LST )
		localizeCoords( num, lat, LST ); //correct for figure-of-the-Earth

	if ( hasTrail() ) {
		Trail.append( new SkyPoint( ra(), dec() ) );
		if ( Trail.count() > MAXTRAIL ) Trail.removeFirst();
	}

	if ( isMajorPlanet() )
		findMagnitude(num);
}