protected void Convert( double _Theta, double _Phi, out double _ThetaH, out double _ThetaD )
{
double HalfPhi = 0.5 * _Phi;
// // _ThetaH = Math.Atan( Math.Cos( _Theta ) / (Math.Sin( _Theta ) * Math.Cos( HalfPhi ) ) );
// _ThetaH = Math.Atan( Math.Tan( _Theta ) * Math.Cos( HalfPhi ) );
//
// double SinSq = 2.0 * Math.Sin( _Theta )*Math.Sin( _Theta ) * Math.Sin( HalfPhi )*Math.Sin( HalfPhi );
// _ThetaD = 0.5 * Math.Acos( 1.0 - SinSq );
_ThetaD = Math.Asin( Math.Sin( HalfPhi ) * Math.Sin( _Theta ) );
_ThetaH = Math.Atan( Math.Cos( HalfPhi ) * Math.Tan( _Theta ) );
}