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); }
/// <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); }
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); }
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); }