Changeset 738 in Sophya for trunk/SophyaLib


Ignore:
Timestamp:
Feb 24, 2000, 12:21:28 PM (26 years ago)
Author:
ansari
Message:

D.Y. Petite modif dans scangle pour eviter les plantages aux petits angles

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/Samba/utilgeom.cc

    r565 r738  
    107107//
    108108//--
    109 {
    110   double eps=1e-10;
    111   if( fabs(1.-sinus*sinus-cosinus*cosinus) > eps || fabs(cosinus)-1. > eps || fabs(sinus)-1. > eps )
    112     {
    113       cerr << "angle non valide." << endl;
    114       cerr << "sinus = " << sinus << " cosinus = " << cosinus << endl;
    115       exit(0);
     109{       // Modifie par D. Y. pour eviter des plantages aux petis angles
     110        double eps=1.e-10;
     111        if( fabs(1.-sinus*sinus-cosinus*cosinus) > eps)
     112    {      // On renormalise D.Y.
     113          // cerr << "angle non valide: "<< "sinus = " << sinus << " cosinus = " << cosinus << '\n'; // BUGGG
     114      double norm= cosinus*cosinus+sinus*sinus;
     115      cosinus=cosinus/norm;
     116      sinus=sinus/norm;     
    116117    }
    117   if( fabs(1.-fabs(cosinus)) < eps ) cosinus=1.*copysign(1.,cosinus);
    118   if( fabs(1.-fabs(sinus)) < eps ) sinus=1.*copysign(1.,sinus);
    119   if( fabs(sinus) == 0. ) sinus=0.;
    120   if( fabs(cosinus) == 0. ) cosinus=0.;
     118  if( fabs(cosinus) >1. ) cosinus=1.*copysign(1.,cosinus);
     119  if( fabs(sinus) >1. ) sinus=1.*copysign(1.,sinus);
     120/*  if( fabs(sinus) == 0. ) sinus=0.;
     121    if( fabs(cosinus) == 0. ) cosinus=0.;
     122*/
    121123  return acos(cosinus)*copysign(1,sinus);
    122124}
    123125
    124 //OMatrix vecTxMat(const OVector& v, const OMatrix& M) {
    125  
Note: See TracChangeset for help on using the changeset viewer.