def testAzmAlt(self): 'Test the azimuth/altitude code.' hitError = False try: m = Matrix.azimuthAltitude(67, -99) except ValueError: hitError = True assert hitError hitError = False try: m = Matrix.azimuthAltitude(67, 187) except ValueError: hitError = True assert hitError Azm = 45 Alt = 60 m = Matrix.azimuthAltitude(Azm, Alt) (sinAzm, cosAzm) = MathUtil.getSinCos(Azm) (sinAlt, cosAlt) = MathUtil.getSinCos(Alt) ihat = m.multv(Vector(1, 0, 0)) places = 7 assert round(ihat[0], places) == round(cosAzm * cosAlt, places), \ round(ihat[0], places) - round(cosAzm * cosAlt, places) assert round(ihat[1], places) == round(sinAzm * cosAlt, places), \ round(ihat[1], places) - round(sinAzm * cosAlt, places) assert round(ihat[2], places) == round(sinAlt, places), \ round(ihat[2], places) - round(sinAlt, places)
def rotationMatrixForY(angle_in_degrees): """Given an angle in degrees, compute the rotation matrix about the Y axis.""" (s, c) = MathUtil.getSinCos(angle_in_degrees) return Matrix([c, 0, s], [0, 1, 0], [-s, 0, c])