Hoofdstuk - Turtle Graphics: Functies en parameters
Uitwerkingen Opgaven
Let op: log eerst in bij repl.itTerug naar de opgaven van Turtle Graphics-Functies en Parameters
Terug naar de extra opgaven om te oefenen met functies en parameters (met Turtle)
Terug naar de cursus pagina
Opgave Vierkant-kunst
import turtle #De definitie voor het tekenen van een vierkant def vierkant(): turtle.forward(50) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.forward(50) turtle.right(90) turtle.pendown() vierkant() #aanroep: teken de vierkant! turtle.right(60) turtle.pencolor("red") vierkant() turtle.right(60) turtle.pencolor("blue") vierkant() turtle.right(60) turtle.pencolor("yellow") vierkant() turtle.right(60) turtle.pencolor("pink") vierkant() turtle.right(60) turtle.pencolor("green") turtle.done()
Opgave Huis: functies aanroepen
import turtle #FUNCTIE DEFINITIES #Tekent zwarte vierkant def tekenMuren(): turtle.forward(150) turtle.right(90) turtle.forward(150) turtle.right(90) turtle.forward(150) turtle.right(90) turtle.forward(150) #Tekent een rood gevulde dak def tekenDak(): turtle.fillcolor("red") turtle.begin_fill() turtle.right(30) turtle.forward(150) turtle.right(120) turtle.forward(150) turtle.end_fill() #HOOFDPROGRAMMA tekenMuren() #roep hier je functie aan om muren te tekenen tekenDak() #roep hier de functie aan om het dak te tekenen turtle.done()
Opgave Dorp tekenen
import turtle #FUNCTIE DEFINITIES #Tekent zwarte vierkant def tekenMuren(): turtle.forward(150) turtle.right(90) turtle.forward(150) turtle.right(90) turtle.forward(150) turtle.right(90) turtle.forward(150) #Tekent een rood gevulde dak def tekenDak(): turtle.fillcolor("red") turtle.begin_fill() turtle.right(30) turtle.forward(150) turtle.right(120) turtle.forward(150) turtle.end_fill() #Tekent een huis bestaande uit muren en een dak def tekenHuis(): tekenMuren() tekenDak() #HOOFDPROGRAMMA tekenHuis() #verplaats pen naar nieuwe plaats en in juiste richting turtle.penup() turtle.setposition(250, 0) turtle.setheading(0) turtle.pendown() tekenHuis() #verplaats pen naar nieuwe plaats en in juiste richting turtle.penup() turtle.setposition(-250, -250) turtle.setheading(0) turtle.pendown() tekenHuis() turtle.done()
Opgave Dorp aanpassen
import turtle #FUNCTIE DEFINITIES #Tekent zwarte vierkant def tekenMuren( kleur ): turtle.fillcolor(kleur) turtle.begin_fill() turtle.forward(150) turtle.right(90) turtle.forward(150) turtle.right(90) turtle.forward(150) turtle.right(90) turtle.forward(150) turtle.end_fill() #Tekent een rood gevulde dak def tekenDak( kleur ): turtle.fillcolor(kleur) turtle.begin_fill() turtle.right(30) turtle.forward(150) turtle.right(120) turtle.forward(150) turtle.end_fill() #Tekent een huis bestaande uit muren en een dak def tekenHuis( kleur_muren, kleur_dak ): tekenMuren( kleur_muren ) tekenDak( kleur_dak ) #HOOFDPROGRAMMA turtle.speed(100) #tekenen iets sneller laten gaan :) #teken eerste huis turtle.pendown() tekenHuis("yellow", "blue") turtle.penup() #teken tweede huis turtle.goto(300,0) turtle.setheading(0) turtle.pendown() tekenHuis( "brown", "red") turtle.penup() #teken derde huis turtle.goto(-300,0) turtle.setheading(0) turtle.pendown() tekenHuis( "green", "purple") turtle.penup() turtle.done()Opgave Eigen creatie met functies en parameters
-- geen uitwerkingen beschikbaar --Opgave Toren van driehoeken
-- geen uitwerkingen beschikbaar --
Extra oefening
Opgave Vierkant met parameters
import turtle #FUNCTIE DEFINITIE #Definitie: Instructies voor het tekenen van een vierkant met een gegeven `grootte` def tekenVierkant( grootte ): turtle.forward( grootte ) turtle.right(90) turtle.forward( grootte ) turtle.right(90) turtle.forward( grootte ) turtle.right(90) turtle.forward( grootte ) turtle.right(90) #HOOFDPROGRAMMA MET AANROEP VAN FUNCTIE turtle.pendown() tekenVierkant(100) #Aanroep: teken een vierkant van 100px. tekenVierkant(30) tekenVierkant(90) tekenVierkant(250) turtle.done()Opgave Driehoeken met functies en parameters
import turtle def tekenDriehoek( lengte_zijde ): turtle.right(30) turtle.forward( lengte_zijde ) turtle.right(120) turtle.forward( lengte_zijde ) turtle.right(120) turtle.forward( lengte_zijde ) tekenDriehoek( 200 ) # teken driehoek tekenDriehoek( 300 ) # teken driehoek turtle.done()Decompositie toepassen
Je hebt in een vorige opdracht een functie geschreven om een huis te tekenen:
tekenHuis()
. Als je het huis verder opdeelt in logische delen zie je dat het huis uit een vierkant en een driehoek bestaat. Dit heet "decompositie".Omdat je nu ook al geleerd hebt om met parameters te werken kun je nu logische componenten bouwen.
Opgave Huis tekenen met parameters
import turtle #FUNCTIE DEFINITIES #Definitie: teken zwarte vierkant def tekenVierkant( lengte ): turtle.forward(lengte) turtle.right(90) turtle.forward(lengte) turtle.right(90) turtle.forward(lengte) turtle.right(90) turtle.forward(lengte) #Definitie: teken een rood gevulde driehoek def tekenDak( lengte, kleur ): turtle.fillcolor( kleur ) turtle.begin_fill() # teken driehoek turtle.right(30) turtle.forward(lengte) turtle.right(120) turtle.forward(lengte) turtle.end_fill() #HOOFDPROGRAMMA MET AANROEP VAN FUNCTIE turtle.pendown() tekenVierkant(150) #Aanroep: tekenVierkant met lengte 150 tekenDak( 150, "blue") #Aanroep: teken een blauw gevulde driehoek van lengte 150 turtle.done()Opgave Nederlandse vlag met functies
Van de code voor het tekenen van een balk maak je een definitie:def tekenBalk(): turtle.forward(150) turtle.right(90) turtle.forward(40) turtle.right(90) turtle.forward(150) turtle.right(90) turtle.forward(40) turtle.right(90)Die kun je dan zo aanroepen: `tekenBalk()`.
De uiteindelijke code komt er dan zo uit te zien:import turtle def tekenBalk(): turtle.begin_fill() turtle.forward(300) turtle.right(90) turtle.forward(40) turtle.right(90) turtle.forward(300) turtle.right(90) turtle.forward(40) turtle.right(90) turtle.end_fill() #Ga naar de beginpositie #turtle.penup() #turtle.goto(0, 0) turtle.pendown() #kleur: rood turtle.color("red") #teken eerste balk tekenBalk() turtle.goto(0, -40) turtle.color("white") tekenBalk() turtle.goto(0, -80) turtle.color("blue") tekenBalk() # Ga weer naar de beginpositie voor het tekenen van de omlijning turtle.penup() turtle.goto(0, 0) turtle.pendown() # kleur: zwart turtle.color("black") # Teken de zwarte omlijning turtle.forward(300) turtle.right(90) turtle.forward(120) turtle.right(90) turtle.forward(300) turtle.right(90) turtle.forward(120) #vlaggenmast turtle.right(180) turtle.forward(320) turtle.done()
Terug naar de opgaven van Turtle Graphics-Functies en Parameters
Terug naar de cursus pagina