code: def sort_segment_points(Aps, Bps):
      mid = []
      j = 0
      mid.append(Aps[0])
      for i in range(len(Aps)-1):
          dist = distance_tt_point(Aps[i], Aps[i+1])
          for m in range(j, len(Bps)):
              distm = distance_tt_point(Aps[i], Bps[m])
              if dist > distm:
                  direction = dot(normalize(line(Aps[i].gen2arr(), Aps[i+1].gen2arr())), normalize(Bps[m].gen2arr()))
                  if direction > 0:
                      j = m + 1
                      mid.append(Bps[m])
                      break
          mid.append(Aps[i+1])
      for m in range(j, len(Bps)):
          mid.append(Bps[m])
      return mid