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() ))); } }
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); }
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); }