40 lines
1.1 KiB
C
40 lines
1.1 KiB
C
|
#include "Geometrie.h"
|
||
|
|
||
|
|
||
|
/// @brief Retourne l'angle entre -PI et +PI
|
||
|
/// @param angle
|
||
|
/// @return
|
||
|
double Geometrie_get_angle_normalisee(double angle){
|
||
|
while(angle > M_PI){
|
||
|
angle -= 2* M_PI;
|
||
|
}
|
||
|
while(angle < 2* -M_PI){
|
||
|
angle += 2* M_PI;
|
||
|
}
|
||
|
return angle;
|
||
|
}
|
||
|
|
||
|
/// @brief Indique si un angle est compris entre deux angles
|
||
|
/// @param angle : angle à comparer
|
||
|
/// @param angle_min : début de la fourchette
|
||
|
/// @param angle_max : fin de la fourchette
|
||
|
/// @return 1 si l'angle est compris entre min et max, 0 sinon
|
||
|
unsigned int Geometrie_compare_angle(double angle, double angle_min, double angle_max){
|
||
|
angle = Geometrie_get_angle_normalisee(angle);
|
||
|
angle_min = Geometrie_get_angle_normalisee(angle_min);
|
||
|
angle_max = Geometrie_get_angle_normalisee(angle_max);
|
||
|
|
||
|
if(angle_min > angle_max){
|
||
|
// cas où la fourchette comprend -PI.
|
||
|
if( (angle > angle_min) || (angle < angle_max)){
|
||
|
return 1;
|
||
|
}
|
||
|
return 0;
|
||
|
}else{
|
||
|
// Cas normal
|
||
|
if( (angle > angle_min) && (angle < angle_max)){
|
||
|
return 1;
|
||
|
}
|
||
|
return 0;
|
||
|
}
|
||
|
}
|