EquatorialCoordinateGrid::EquatorialCoordinateGrid( SkyComposite *parent ) : CoordinateGrid( parent, i18n("Equatorial Coordinate Grid" ) ) { KStarsData *data = KStarsData::Instance(); intro(); double eps = 0.1; double minRa = 0.0; double maxRa = 23.0; double dRa = 2.0; double minDec = -80.0; double maxDec = 90.0; double dDec = 20.0; double dDec2 = 4.0; double dRa2 = 0.2; double max, dec, dec2, ra, ra2; LineList* lineList; for ( ra = minRa; ra < maxRa; ra += dRa ) { for ( dec = -90.0; dec < maxDec - eps; dec += dDec ) { lineList = new LineList(); max = dec + dDec; if ( max > 90.0 ) max = 90.0; for ( dec2 = dec; dec2 <= max + eps; dec2 += dDec2 ) { SkyPoint* p = new SkyPoint( ra, dec2 ); p->EquatorialToHorizontal( data->lst(), data->geo()->lat() ); lineList->append( p ); } appendLine( lineList ); } } for ( dec = minDec; dec < maxDec + eps; dec += dDec ) { // Do not paint the line on the equator if ( dec < 0.1 && dec > -0.1 ) continue; // Adjust point density int nPoints = int(round( fabs(cos(dec* dms::PI / 180.0)) * dRa / dRa2 )); if ( nPoints < 5 ) nPoints = 5; double dRa3 = dRa / nPoints; for ( ra = minRa; ra < maxRa + eps; ra += dRa ) { lineList = new LineList(); for ( ra2 = ra; ra2 <= ra + dRa + eps; ra2 += dRa3 ) { SkyPoint* p = new SkyPoint( ra2, dec ); p->EquatorialToHorizontal( data->lst(), data->geo()->lat() ); lineList->append( p ); } appendLine( lineList ); } } summary(); }
Ecliptic::Ecliptic(SkyComposite *parent ) : LineListIndex( parent, i18n("Ecliptic") ), m_label( name() ) { KStarsData *data = KStarsData::Instance(); KSNumbers num( data->ut().djd() ); dms elat(0.0), elng(0.0); const double eps = 0.1; const double minRa = 0.0; const double maxRa = 23.0; const double dRa = 2.0; const double dRa2 = 2. / 5.; for(double ra = minRa; ra < maxRa; ra += dRa ) { LineList* lineList = new LineList(); for(double ra2 = ra; ra2 <= ra + dRa + eps; ra2 += dRa2 ) { elng.setH( ra2 ); SkyPoint* o = new SkyPoint(); o->setFromEcliptic( num.obliquity(), elng, elat ); o->setRA0( o->ra().Hours() ); o->setDec0( o->dec().Degrees() ); o->EquatorialToHorizontal( data->lst(), data->geo()->lat() ); lineList->append( o ); } appendLine( lineList ); } }
void LinePath::growList(LineList &list, int by) { QPen pen( getLineColor(), getLineWidth() ); for (int i = 0; i < by; i++) { QCanvasLine * line = new QCanvasLine( getCanvas() ); line -> setZ( 0 ); line -> setPen( pen ); line -> setVisible( true ); list.append( line ); } }