code: def drawZigzag(self, p1, p2, breadth = 2):
          
          p1 = Point(p1)
          p2 = Point(p2)
          S = p2 - p1                             # vector start - end
          rad = abs(S)                            # distance of points
          cnt = 4 * int(round(rad / (4 * breadth), 0)) # always take full phases
          if cnt < 4:
              raise ValueError("points too close")
          mb = rad / cnt                          # revised breadth
          matrix = TOOLS._hor_matrix(p1, p2)      # normalize line to x-axis
          i_mat  = ~matrix                        # get original position
          points = []                             # stores edges
          for i in range (1, cnt):                
              if i % 4 == 1:                      # point "above" connection
                  p = Point(i, -1) * mb
              elif i % 4 == 3:                    # point "below" connection
                  p = Point(i, 1) * mb
              else:                               # ignore others
                  continue
              points.append(p * i_mat)
          self.drawPolyline([p1] + points + [p2])  # add start and end points
          return p2
docs: Draw a zig-zagged line from p1 to p2.