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