10UMLClass44099110160Animation -- run_one_cycle() start() -- cycle_ms ballsUMLClass45097030main UMLClass71099110160Ball -- run_one_cycle() -- diameter colors color idUMLClass300339200220Canvas (a tkinter class) -- create_XXX(position, options) : id move(id, x, y) coords(id, position) itemconfigure(id, XXX=YYY) -- width heightUMLClass14059150210GUI -- make_canvas() : Canvas start() animation_loop() -- root frame canvas Relation470308090lt=<- m2=constructs m1=calls start10;70;10;10Relation54012019050lt=<- m1=1..* m2=1 constructs170;20;10;20Relation28011018050lt=<- m1=1 m2=1 constructs10;20;160;20Relation200260120100lt=<- constructs m1=1 m2=1100;80;10;10Relation490250240110lt=<- m1=1 m2=1 m1pos=5,0 m2pos=15,0 10;90;220;10Relation28016018040lt=<- calls run_one_cycle160;20;10;20UMLNote3090110170Note.. bg=green root repeatedly calls animation_loop using the Tk after methodUMLNote500370340150Note.. bg=green create_oval puts the Ball on the Canvas move. moves the Ball BY a random small amount coords. moves the Ball TO a random position itemconfigure. changes the Ball's fill colorRelation54017019040lt=<- calls run_one_cycle170;20;10;20