diff options
author | tom.s.morris <tom.s.morris@googlemail.com> | 2013-08-22 23:47:54 +0100 |
---|---|---|
committer | tom.s.morris <tom.s.morris@googlemail.com> | 2013-08-22 23:47:54 +0100 |
commit | 4c656f7050c49bb947542ddb5dbf9114ed850d1e (patch) | |
tree | deb5eb77336d903599dd84212bd62146d10afc6c | |
parent | b63db48746f091aea27b401e0726be7dbeea10f1 (diff) |
Fix rotation angle of galaxies.new-ngc-catalog
-rw-r--r-- | src/core/modules/Nebula.cpp | 17 | ||||
-rw-r--r-- | src/core/modules/NebulaMgr.cpp | 6 |
2 files changed, 13 insertions, 10 deletions
diff --git a/src/core/modules/Nebula.cpp b/src/core/modules/Nebula.cpp index 7445cca654..1478ff472e 100644 --- a/src/core/modules/Nebula.cpp +++ b/src/core/modules/Nebula.cpp @@ -182,6 +182,7 @@ QString Nebula::getInfoString(const StelCore *core, const InfoStringGroup& flags oss << q_("Size: %1 x %2").arg(StelUtils::radToDmsStr(sizeX/60. * M_PI/180.)).arg(StelUtils::radToDmsStr(sizeY/60. * M_PI/180.)) << "<br>"; else oss << q_("Size: %1").arg(StelUtils::radToDmsStr(sizeX/60. * M_PI/180.)) << "<br>"; + oss << q_("Principl angle: %1 deg").arg(PAdeg) << "<br>"; } postProcessInfoString(str, flags); @@ -242,7 +243,10 @@ void Nebula::drawHints(StelRenderer* renderer, StelProjectorP projector, float m float lum = 1.f;//qMin(1,4.f/getOnScreenSize(core))*0.8; // local direction towards N on screen - float angleNorth = 180./M_PI * atan2(-XY2[0] + XY[0], XY2[1] - XY[1]); + Vec3d dir = XY2 - XY; + dir.normalize(); + + double angleNorth = 180.0/M_PI * std::atan2(dir[1], dir[0]); float pixelPerDegree = M_PI/180. * projector->getPixelPerRadAtCenter(); @@ -266,9 +270,9 @@ void Nebula::drawHints(StelRenderer* renderer, StelProjectorP projector, float m //qDebug("x=%f y=%f sizeX=%f sizeY=%f", XY[0], XY[1], sizeX*pixelPerDegree/60., sizeY*pixelPerDegree/60.); //sPainter.setShadeModel(StelPainter::ShadeModelFlat); if(sizeY < 1e-3) - renderer->drawEllipse(XY[0], XY[1], sizeX*pixelPerDegree/60, sizeX*pixelPerDegree/60, PAdeg); + renderer->drawEllipse(XY[0], XY[1], sizeX*pixelPerDegree/60, sizeX*pixelPerDegree/60, 0.); else - renderer->drawEllipse(XY[0], XY[1], sizeX*pixelPerDegree/60., sizeY*pixelPerDegree/60., PAdeg); + renderer->drawEllipse(XY[0], XY[1], sizeX*pixelPerDegree/60., sizeY*pixelPerDegree/60., PAdeg +angleNorth); //hintTextures.texGalaxy->bind(); break; @@ -447,7 +451,7 @@ void Nebula::parseRecord(const QString& record, int idx) #endif // Calc the Cartesian coord with RA and DE StelUtils::spheToRect(ra, dec, XYZ); - StelUtils::spheToRect(ra-0.01,dec,XYZ2); // FIXME: used to calculate direction of North + StelUtils::spheToRect(ra, dec-0.05,XYZ2); // FIXME: used to calculate direction of North // Read the blue (photographic) and visual magnitude magB = record.mid(56, 4).toFloat(); @@ -518,7 +522,7 @@ void Nebula::readNGC(QDataStream& in) } StelUtils::spheToRect(ra,dec,XYZ); Q_ASSERT(fabs(XYZ.lengthSquared()-1.)<0.000000001); - nType = (Nebula::NebulaType)type; + nType = (Nebula::NebulaType)type; // GZ: Trace the undefined entries... //if (type >= 5) { // qDebug()<< (isIc?"IC" : "NGC") << nb << " type " << type ; @@ -576,7 +580,8 @@ void Nebula::readExtendedNGC(QDataStream& in) StelUtils::spheToRect(ra,dec,XYZ); Q_ASSERT(fabs(XYZ.lengthSquared()-1.)<0.000000001); - nType = (Nebula::NebulaType)type; + StelUtils::spheToRect(ra,dec-0.01,XYZ2); // used to calculate direction of North + nType = (Nebula::NebulaType)type; pointRegion = SphericalRegionP(new SphericalPoint(getJ2000EquatorialPos(NULL))); } diff --git a/src/core/modules/NebulaMgr.cpp b/src/core/modules/NebulaMgr.cpp index 6c151e1c54..0efd0c118a 100644 --- a/src/core/modules/NebulaMgr.cpp +++ b/src/core/modules/NebulaMgr.cpp @@ -136,11 +136,9 @@ struct DrawNebulaFuncObject if (n->angularSize>angularSizeLimit || (checkMaxMagHints && n->mag <= maxMagHints)) { float refmag_add=0; // value to adjust hints visibility threshold. - //sPainter->getProjector()->project(n->XYZ,n->XY); - // sPainter->getProjector()->project(n->XYZ2,n->XY2); //FIXME - // n->drawLabel(*sPainter, maxMagLabels-refmag_add); projector->project(n->XYZ,n->XY); - n->drawLabel(renderer, projector, maxMagLabels-refmag_add); + projector->project(n->XYZ2,n->XY2); + n->drawLabel(renderer, projector, maxMagLabels-refmag_add); n->drawHints(renderer, projector, maxMagHints -refmag_add, nebulaHintTextures); } } |