コード例 #1
0
        public double DEC_degrees_to(MechanicalPoint b)
        {
            Contract.Requires(!(b is null));

            // RA is circular, DEC is not
            return((b._DECm - _DECm) / 3600.0);
        }
コード例 #2
0
        public static double Subtract(MechanicalPoint a, MechanicalPoint b)
        {
            Contract.Requires(!(a is null));
            Contract.Requires(!(b is null));

            double ra_distance  = a.RA_degrees_to(b);
            double dec_distance = a.DEC_degrees_to(b);

            // FIXME: Incorrect distance calculation, but enough for our purpose
            return(Math.Sqrt(ra_distance * ra_distance + dec_distance * dec_distance));
        }
コード例 #3
0
        public double RA_degrees_to(MechanicalPoint b)
        {
            Contract.Requires(!(b is null));

            // RA is circular, DEC is not
            // We have hours and not degrees because that's what the mount is handling in terms of precision
            // We need to be cautious, as if we were to use real degrees, the RA movement would need to be 15 times more precise
            long delta = b._RAm - _RAm;

            if (delta > +12 * 3600)
            {
                delta -= 24 * 3600;
            }
            if (delta < -12 * 3600)
            {
                delta += 24 * 3600;
            }
            return((double)(delta * 15) / 3600.0);
        }