Exemplo n.º 1
0
        private void refreshZenithAngle()
        {
            double angleRad;
            double dotProduct;

            dotProduct       = Triplet.dotProduct(this.aDEC.AcelerationUnit, Status.Zenith);
            angleRad         = Math.Acos(dotProduct);
            this.zenithAngle = ((angleRad * 180.0) / Math.PI);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Calcula el producto matricial MxA
        /// </summary>
        /// <param name="M">La Matriz (esta matriz premultiplica.</param>
        /// <param name="A">El vector a multiplicar.</param>
        /// <returns></returns>
        public static Triplet matrixProduct(Triplet[] M, Triplet A)
        {
            Triplet respuesta;

            respuesta   = new Triplet();
            respuesta.X = Triplet.dotProduct(M[0], A);
            respuesta.Y = Triplet.dotProduct(M[1], A);
            respuesta.Z = Triplet.dotProduct(M[2], A);
            return(respuesta);
        }
Exemplo n.º 3
0
        private void refreshCounterWeightAngle()
        {
            double  angleRad;
            double  dotProduct;
            Triplet ARcrossSouthPole;
            Byte    OctantARcrossSouthPole;

            dotProduct             = Triplet.dotProduct(this.aRA.AcelerationUnit, Status.SouthPole);
            ARcrossSouthPole       = Triplet.crossProduct(this.aRA.AcelerationUnit, Status.SouthPole);
            OctantARcrossSouthPole = Triplet.Octant(ARcrossSouthPole);
            //Console.WriteLine("ARcrossSouthPole=" + ARcrossSouthPole.ToString());
            //Console.WriteLine("OctantARcrossSouthPole=" + OctantARcrossSouthPole.ToString());
            angleRad = Math.Acos(dotProduct);
            if (OctantARcrossSouthPole > 0)
            {
                angleRad *= -1.0;
            }
            angleRad += Math.PI;
            this.counterWeightAngle = ((angleRad * 180.0) / Math.PI);
        }
Exemplo n.º 4
0
        private void refreshDeclinationAngle()
        {
            double  angleRad;
            double  dotProduct;
            Triplet DECcrossSouthPole;
            Byte    OctantDECcrossSouthPole;
            Triplet SouthPoleB;

            SouthPoleB              = Triplet.normalized(Triplet.matrixProduct(Status.RotationMatrix, this.aRA.AcelerationUnit));
            dotProduct              = Triplet.dotProduct(this.aDEC.AcelerationUnit, SouthPoleB);
            DECcrossSouthPole       = Triplet.crossProduct(this.aDEC.AcelerationUnit, SouthPoleB);
            OctantDECcrossSouthPole = Triplet.Octant(DECcrossSouthPole);
            Console.WriteLine("SouthPoleB=" + SouthPoleB.ToString());
            Console.WriteLine("OctantDECcrossSouthPole=" + OctantDECcrossSouthPole.ToString());
            angleRad = Math.Acos(dotProduct);
            if (OctantDECcrossSouthPole < 6)
            {
                angleRad *= -1.0;
            }
            this.declinationAngle = ((angleRad * 180.0) / Math.PI);
            Console.WriteLine("DEC_RA[º]=" + this.declinationAngle);
        }