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