float angle (float x, float y)
{ float a = x ? atan (y/x) : 0 ;
if (y<0) if (x>=0) return a + pi ;
else return a - pi ;
return a ;
}
/********** définition des fonctions membre *****************/
point::point (float abs, float ord)
{ r = sqrt (abs*abs + ord*ord) ;
t = atan (ord/abs) ;
}
void point::deplace (float dx, float dy)
{ float x = r * cos (t) + dx ; // nouvelle abscisse
float y = r * sin (t) + dy ; // nouvelle ordonnée
r = sqrt (x*x + y*y) ;
t = angle (x, y) ;
}
void point::homothetie (float hm)
{ r *= hm ;
}
void point::rotation (float th)
{ t += th ;
}
float point::abscisse ()
{ return r * cos (t) ;
}
float point::ordonnee ()
{ return r * sin (t) ;
}
float point::rho ()
{ return r ;
}
float point::theta ()
{ return t ;
}
141
{ float a = x ? atan (y/x) : 0 ;
if (y<0) if (x>=0) return a + pi ;
else return a - pi ;
return a ;
}
/********** définition des fonctions membre *****************/
point::point (float abs, float ord)
{ r = sqrt (abs*abs + ord*ord) ;
t = atan (ord/abs) ;
}
void point::deplace (float dx, float dy)
{ float x = r * cos (t) + dx ; // nouvelle abscisse
float y = r * sin (t) + dy ; // nouvelle ordonnée
r = sqrt (x*x + y*y) ;
t = angle (x, y) ;
}
void point::homothetie (float hm)
{ r *= hm ;
}
void point::rotation (float th)
{ t += th ;
}
float point::abscisse ()
{ return r * cos (t) ;
}
float point::ordonnee ()
{ return r * sin (t) ;
}
float point::rho ()
{ return r ;
}
float point::theta ()
{ return t ;
}
141
