this is different from the constraints we've used to pack widgets thus farbut it allows very fine-grained control over graphical layoutsand it supports more free-form interface techniques such as animation object construction the canvas allows you to draw and display common shapes such as linesovalsrectanglesarcsand polygons in additionyou can embed textimagesand other kinds of tkinter widgets such as labels and buttons the canvas script demonstrates all the basic graphic object constructor callsto eachyou pass one or more sets of ( ,ycoordinates to give the new object' locationstart point and endpointor diagonally opposite corners of bounding box that encloses the shapeid canvas create_line(fromxfromytoxtoyid canvas create_oval(fromxfromytoxtoyid canvas create_arcfromxfromytoxtoyid canvas create_rectangle(fromxfromytoxtoyline startstop two opposite box corners two opposite oval corners two opposite corners other drawing calls specify just one ( ,ypairto give the location of the object' upperleft cornerid canvas create_image( image=photoanchor=nwid canvas create_window( window=widgetid canvas create_text( text='ham'embed photo embed widget draw some text the canvas also provides create_polygon method that accepts an arbitrary set of coordinate arguments defining the endpoints of connected linesit' useful for drawing more arbitrary kinds of shapes composed of straight lines in addition to coordinatesmost of these drawing calls let you specify common configuration optionssuch as outline widthfill coloroutline colorand so on individual object types have unique configuration options all their owntoofor instancelines may specify the shape of an optional arrowand textwidgetsand images may be anchored to point of the compass (this looks like the packer' anchorbut really it gives point on the object that is positioned at the [ ,ycoordinates given in the create callnw puts the upper-left corner at [ , ]perhaps the most important thing to notice herethoughis that tkinter does most of the "gruntwork for you--when drawing graphicsyou provide coordinatesand shapes are automatically plotted and rendered in the pixel world if you've ever done any lower-level graphics workyou'll appreciate the difference animation techniques are covered at the end of this tour as use case examplebecause you can embed other widgets in canvas' drawing areatheir coordinate system also makes them ideal for implementing guis that let users design other guis by dragging embedded widgets around on the canvas-- useful canvas application we would explore in this book if had few hundred pages to spare tkinter tourpart