<diagram program="umletino" version="14.3.0"><zoom_level>10</zoom_level><element><id>UMLClass</id><coordinates><x>440</x><y>99</y><w>110</w><h>160</h></coordinates><panel_attributes>Animation
--

  run_one_cycle()

  start()

--

  cycle_ms
  balls</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>450</x><y>9</y><w>70</w><h>30</h></coordinates><panel_attributes>main

</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>710</x><y>99</y><w>110</w><h>160</h></coordinates><panel_attributes>Ball
--

  run_one_cycle()

--

  diameter
  colors
  color
  id</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>300</x><y>339</y><w>200</w><h>220</h></coordinates><panel_attributes>Canvas (a tkinter class)
--

create_XXX(position, options) : id

move(id, x, y)

coords(id, position)

itemconfigure(id, XXX=YYY)

--

width
height</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>140</x><y>59</y><w>150</w><h>210</h></coordinates><panel_attributes>GUI
--

  make_canvas() : Canvas

  start()

  animation_loop()

--

  root
  frame
  canvas
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>470</x><y>30</y><w>80</w><h>90</h></coordinates><panel_attributes>lt=&lt;-
m2=constructs
m1=calls start</panel_attributes><additional_attributes>10;70;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>540</x><y>120</y><w>190</w><h>50</h></coordinates><panel_attributes>lt=&lt;-
m1=1..*
m2=1
constructs</panel_attributes><additional_attributes>170;20;10;20</additional_attributes></element><element><id>Relation</id><coordinates><x>280</x><y>110</y><w>180</w><h>50</h></coordinates><panel_attributes>lt=&lt;-
m1=1
m2=1
constructs</panel_attributes><additional_attributes>10;20;160;20</additional_attributes></element><element><id>Relation</id><coordinates><x>200</x><y>260</y><w>120</w><h>100</h></coordinates><panel_attributes>lt=&lt;-
                constructs
m1=1
m2=1</panel_attributes><additional_attributes>100;80;10;10</additional_attributes></element><element><id>Relation</id><coordinates><x>490</x><y>250</y><w>240</w><h>110</h></coordinates><panel_attributes>lt=&lt;-
m1=1
m2=1
m1pos=5,0
m2pos=15,0
</panel_attributes><additional_attributes>10;90;220;10</additional_attributes></element><element><id>Relation</id><coordinates><x>280</x><y>160</y><w>180</w><h>40</h></coordinates><panel_attributes>lt=&lt;-
calls run_one_cycle</panel_attributes><additional_attributes>160;20;10;20</additional_attributes></element><element><id>UMLNote</id><coordinates><x>30</x><y>90</y><w>110</w><h>170</h></coordinates><panel_attributes>Note..
bg=green

   root
repeatedly calls

   animation_loop

using the Tk
   after
method</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLNote</id><coordinates><x>500</x><y>370</y><w>340</w><h>150</h></coordinates><panel_attributes>Note..
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 color</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>540</x><y>170</y><w>190</w><h>40</h></coordinates><panel_attributes>lt=&lt;-
calls run_one_cycle</panel_attributes><additional_attributes>170;20;10;20</additional_attributes></element></diagram>