Page 167 - Demo
P. 167

TI Python BootCamp VERDIEPING 5
¨¨ ¨¨¨¨ ¨¨¨¨
¨¨ ¨¨¨¨ ¨¨¨¨
¨¨
¨¨ ¨¨
¨¨ ¨¨¨¨
¨¨
¨¨
¨¨
¨¨¨¨
¨¨
¨¨
¨¨
¨¨
¨¨
¨¨¨¨
¨¨¨¨
¨¨¨¨¨¨
¨¨¨¨¨¨¨¨
¨¨¨¨¨¨¨¨
¨¨¨¨¨¨¨¨¨¨
¨¨¨¨¨¨¨¨¨¨
¨¨¨¨¨¨¨¨¨¨
¨¨¨¨
¨¨¨¨ ¨¨¨¨
Python OOP
We bepalen het scherm en generen de punten,
¨¨ ¨¨ ¨¨
tekenen de punten en
¨¨ ¨¨ ¨¨
teken(punten)
bepalen de EMST-boom,
emstBoom(punten)
    We starten met het definiëren van objecten,
 methodes en functies:
 w,h = get_screen_dim()
  from ti_draw import *
r,n = (3,25)
 from random import *
 punten = [ ]
 from math import *
 for i in range(n):
 x = randint(r,w-r)
 class Punt():
 y = randint(r,h-r)
 def __init__(self,x,y):
 punten.append(Punt(x,y))
 self.x = x
 self.y = y
  def teken(self):
  set_color(0,0,0)
 fill_circle(self.x,self.y,r)
w,h = get_screen_dim()
 r,n = (3,25)
 punten = [ ]
 def afstand(p,q):
 for i in range(n):
 return sqrt((p.x-q.x)**2+(p.y-q.y)**2)
 x = randint(r,w-r)
 y = randint(r,h-r)
 def lijn(p,q):
  set_color(255,0,0)
punten.append(Punt(x,y))
 draw_line(p.x,p.y,q.x,q.y)
  def teken(punten):
  for p in punten:
 p.teken()
 def emstBoom(punten):
 verbonden=[ ]
 niet_verbonden=[ ]
 for p in punten:
 niet_verbonden.append(p)
 rand = randint(0,len(punten)-1)
 p = punten[rand]
 verbonden.append(p)
 niet_verbonden.remove(p)
 while niet_verbonden !=[ ]:
 a=500
 for p in verbonden:
 for q in niet_verbonden:
 d=afstand(p,q)
 if d<a:
 a=d
 p1=p
 q1=q
 lijn(p1,q1)
 verbonden.append(q1)
 niet_verbonden.remove(q1)
   © 2020 T3 Nederland – T3 Vlaanderen
5
www.t3nederland.nl – www.t3vlaanderen.be








   164   165   166   167   168