56d6307a1c
- aggiunte intersezioni tra linee ed archi - aggiunte intersezioni tra archi e archi - aggiunte funzioni di utilità per angoli.
49 lines
1.6 KiB
C++
49 lines
1.6 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2014-2014
|
|
//----------------------------------------------------------------------------
|
|
// File : Angle.cpp Data : 14.07.14 Versione : 1.5g2
|
|
// Contenuto : Implementazione funzioni per gestione angoli.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 14.07.14 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//--------------------------- Include ----------------------------------------
|
|
#include "stdafx.h"
|
|
#include "/EgtDev/Include/EGkAngle.h"
|
|
#include "/EgtDev/Include/EGkGeoConst.h"
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
double
|
|
AngleNearAngle( double dAngDeg, double dAngRefDeg)
|
|
{
|
|
// devo portare l'angolo entro +/- un angolo piatto dal riferimento
|
|
while ( dAngDeg > dAngRefDeg + ANG_STRAIGHT + EPS_ANG_ZERO)
|
|
dAngDeg -= ANG_FULL ;
|
|
while ( dAngDeg < dAngRefDeg - ANG_STRAIGHT - EPS_ANG_ZERO)
|
|
dAngDeg += ANG_FULL ;
|
|
return dAngDeg ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
double
|
|
DiffAngle( double dAng1Deg, double dAng2Deg)
|
|
{
|
|
double dAng1Near2Deg = AngleNearAngle( dAng1Deg, dAng2Deg) ;
|
|
|
|
return ( dAng1Near2Deg - dAng2Deg) ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
double
|
|
MediaAngle( double dAng1Deg, double dAng2Deg, double dCoeff)
|
|
{
|
|
double dAng1Near2Deg = AngleNearAngle( dAng1Deg, dAng2Deg) ;
|
|
|
|
return ( dAng1Near2Deg * ( 1 - dCoeff) + dAng2Deg * dCoeff) ;
|
|
}
|