code: def is_intersect(line_a, line_b):
      
      # Find the four orientations needed for general and special cases
      orientation_1 = orientation(line_a.endpoint_a, line_a.endpoint_b,
                                  line_b.endpoint_a)
      orientation_2 = orientation(line_a.endpoint_a, line_a.endpoint_b,
                                  line_b.endpoint_b)
      orientation_3 = orientation(line_b.endpoint_a, line_b.endpoint_b,
                                  line_a.endpoint_a)
      orientation_4 = orientation(line_b.endpoint_a, line_b.endpoint_b,
                                  line_a.endpoint_b)
  
      # General case
      if (orientation_1 != orientation_2 and orientation_3 != orientation_4):
          return True
  
      # Special cases
      if (orientation_1 == 0 and on_segment(line_a.endpoint_a, line_b.endpoint_a,
                                            line_a.endpoint_b)):
          return True
      if (orientation_2 == 0 and on_segment(line_a.endpoint_a, line_b.endpoint_b,
                                            line_a.endpoint_b)):
          return True
      if (orientation_3 == 0 and on_segment(line_b.endpoint_a, line_a.endpoint_a,
                                            line_b.endpoint_b)):
          return True
      if (orientation_4 == 0 and on_segment(line_b.endpoint_a, line_a.endpoint_b,
                                            line_b.endpoint_b)):
          return True
  
      return False
docs: Determine if lina_a intersect with line_b
  
      :param lina_a:
      :type lina_a: models.Line
      :param lina_b:
      :type line_b: models.Line
      :return:
      :rtype: bool