<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def drawZigzag(self, p1, p2, breadth = 2):
 """Draw a zig-zagged line from p1 to p2. """

        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