Drawing irregular lines and super shapes
Let's now add the feature to draw irregular or continuous free-flowing lines. We will also add the ability to draw a variety of interesting shapes on the drawing canvas as shown here:

As a reminder, all our buttons are linked to dynamically call functions defined in our tool_bar_functions tuple. Further, we can specify unique options for a given function by adding the string _options to the function name.
Drawing irregular lines
To add the capability to draw irregular lines, we just need to define the method named draw_irregular_line. To specify options that appear in the top bar, we need to define the method named draw_irregular_line_options.
We define the draw_irregular_line method as follows (see code 6.07.py):
def draw_irregular_line(self):
self.current_item = self.canvas.create_line(
self.start_x, self.start_y, self.end_x, self.end_y, fill=self.fill, width=self.width)
self.canvas.bind("<B1-Motion>", self.draw_irregular_line_update_x_y...