code: def from_axis_angle(self, axis, angle):
          '''create a rotation matrix from axis and angle'''
          ux = axis.x
          uy = axis.y
          uz = axis.z
          ct = cos(angle)
          st = sin(angle)
          self.a.x = ct + (1-ct) * ux**2
          self.a.y = ux*uy*(1-ct) - uz*st
          self.a.z = ux*uz*(1-ct) + uy*st
          self.b.x = uy*ux*(1-ct) + uz*st
          self.b.y = ct + (1-ct) * uy**2
          self.b.z = uy*uz*(1-ct) - ux*st
          self.c.x = uz*ux*(1-ct) - uy*st
          self.c.y = uz*uy*(1-ct) + ux*st
          self.c.z = ct + (1-ct) * uz**f from_axis_angle(self, axis, angle):
          '''create a rotation matrix from axis and angle'''
          ux = axis.x
          uy = axis.y
          uz = axis.z
          ct = cos(angle)
          st = sin(angle)
          self.a.x = ct + (1-ct) * ux**2
          self.a.y = ux*uy*(1-ct) - uz*st
          self.a.z = ux*uz*(1-ct) + uy*st
          self.b.x = uy*ux*(1-ct) + uz*st
          self.b.y = ct + (1-ct) * uy**2
          self.b.z = uy*uz*(1-ct) - ux*st
          self.c.x = uz*ux*(1-ct) - uy*st
          self.c.y = uz*uy*(1-ct) + ux*st
          self.c.z = ct + (1-ct) * uz**2
docs: create a rotation matrix from axis and angle