Cirkel og tekst

På denne side skal du se nogle at turtle biblioteket kan andet en at tegne streger. I det første program skal skildpadden tegne en cirkel, halvcirkel og kasse.

Cirkel og tekst

ex3-4-1a

Pythonprogrammet til at tegne dette er ret langt, men det er ikke svært at forstå.

# Python: eks3-4-1.py
# Tegner cirkel, halvcirkel og boks paa skaermen
import turtle

# Tegn vindue og opret skilpadden
turtle.setup(width=450,height=300)
skildpadde = turtle.Turtle()

# Saet farven til blå og tykkelse til 4
skildpadde.color("blue")
skildpadde.pensize(4)

# Flyt skildpadden
skildpadde.penup()
skildpadde.setpos(-150,0)
skildpadde.pendown()

# Tegn en cirkel
skildpadde.circle(50)

# Ny farve
skildpadde.color("green")

# Flyt skildpadden
skildpadde.penup()
skildpadde.setpos(0,0)
skildpadde.pendown()

# Tegn en halvcirkel
skildpadde.circle(50, extent=180)

# Ny farve
skildpadde.color("red")

# Flyt skildpadden
skildpadde.penup()
skildpadde.setpos(150,100)
skildpadde.pendown()

# Tegn en kasse - det er en cirkel med 4 sider
skildpadde.circle(50, steps=4)

# Ny farve
skildpadde.color("black")

# Flyt skildadden
skildpadde.penup()
skildpadde.setpos(-150,-50)

# Skriv tekst
skildpadde.write("Cirkel ", True, align="center", font=("Arial", 16, "normal"))

# Flyt skildpadden og skriv tekst
skildpadde.penup()
skildpadde.setpos(0,-50)
skildpadde.write("Kvartcirkel ", True, align="center", font=("Arial", 16, "normal"))


# Flyt skildpadden og skriv tekst
skildpadde.penup()
skildpadde.setpos(150,-50)
skildpadde.write("Boks", True, align="center", font=("Arial", 16, "normal"))

# Vent på brugeren
turtle.exitonclick()

Python programmet indeholder kommentarer, men første gang der en noget nyt er:

skildpadde.circle(50)

Det fortæller skildpadden at tegne en cirkel med en radius på 50 skridt. Metoden circle kan også tage andre parametre, eksempelvis extent, som fortæller skildpadden, hvormeget af cirkel, som den skal tegne. En cirkel er på 360 grader og vi ønsker at skildpadden kun skal tegne en halvcirkel, hvorfor extent bliver sat til 180 grader (som er det  halve af 360 grader):

skildpadde.circle(50, extent=180)

Metoden circle kan også tegne polygoner ved at bruge parametren steps (antal trin). Ved at sætte steps til 4 tegner circle ikke en cirkel, men en firkant. Hvis steps = 7 vil skildpadden tegne en syvkant, så den kan tegne polygon med det antal sider, som du beder den om.

Når skildpadden tegner en cirkel tegner den faktisk en polygon med så mange sider at det ligner en cirkel.

Skildpadden skriver teksten ved hjælp at write metoden. I koden står der:

skildpadde.write("Boks", True, align="center", font=("Arial", 16, "normal"))

write beder skildpadden om at skrive boks. align betyder, hvordan teksten skal stå og center betyder i midten. Den sidste parameter er font, som betyder skrifttype. Skildpadden bruger skrifttypen Ariel (som du måske kender fra Word), i størrelsen 16 og den skriften skal være normal (dvs. ikke kursiv eller fed).

Udfyldte tegninger

Indtil nu har skildpadden tegnet streger på skærmen, men den kan også tegne udfylde figurer som denne trekant.

ex3-4-2

Koden til denne trekant er vist her.

# Python: eks3-4-2.py
# Tegner en trekant med gul kant og groen indeni
import turtle

# Tegn vindue og opret skildpadden
turtle.setup(width=200,height=200)
skildpadde = turtle.Turtle()

# Saet kantfarve til gul, udfyldsfarve til groen og tykkelsen er 5
skildpadde.color("yellow")
skildpadde.fillcolor("green")
skildpadde.pensize(5)

# Flyt skildpadden
skildpadde.penup()
skildpadde.setpos(-80,60)
skildpadde.pendown()

# Goer klar til udfylde naeste figur
skildpadde.begin_fill()

# Tegn fire sider
for kanter in range(0, 3):
    skildpadde.forward(150)
    skildpadde.right(120)

# Udfyld sidst tegnet figur
skildpadde.end_fill()

# Vent på brugeren
turtle.exitonclick()

Prøv at læse programmet. Det første nye, som du ser er her:

skildpadde.begin_fill()

Det fortæller skildpadden at den skal gøre klar til at udfylde den næste figur (begin=begynd og fill=udfyldning). Programmet går videre og tegner en trekant med en for-løkke. Når de tre sider er tegnet kommer python programmet til denne linje, som fortæller skildpadden at figur er færdig og den nu kan udfylde.

skildpadde.end_fill()

Ved at bruge begin_fill og end_fill kan du tegne mange udfyldte figurer. Her har skildpadden tegnet 225 små blå kasser med rød kant.

ex3-4-3

Programmet til at tegne er her:

# Python: eks3-4-3.py
# Tegner 225 kasser i vinduet
import turtle

# Tegn vindue
turtle.setup(width=450,height=450)

# Skilpadde, saet farver og tykkelse
skildpadde = turtle.Turtle()
skildpadde.color("blue")
skildpadde.fillcolor("red")
skildpadde.pensize(2)

# Hurtig skildpadde
skildpadde.speed(0)

# To for loekker - den yderste styre rakkee og den inderste kolonne
for i in range(0,15):
    for j in range(0,15):

        # Flyt skildpadden
        skildpadde.penup()
        # Beregn ny position
        skildpadde.setpos(-200+(j*25),200-(i*25))
        skildpadde.pendown()

        # Udfyld naeste figur
        skildpadde.begin_fill()

        # Tegn en lille kasse
        for kanter in range(0, 4):
            skildpadde.forward(10)
            skildpadde.right(90)

        # Udfyld kassen
        skildpadde.end_fill()


turtle.exitonclick()

Der er intet nyt python kode eller metoder til at styre skildpadden, så prøv at læse programmet igennem.

Opgaver

  1. Ændre det første program til at tegne 7 kanter
  2. Det sidste program tegner 225 kasser. Hvordan får du det at tegne kun 16 kasser (4 henad og 4 nedad)

Du har lært

  • At få skildpadden til at tegne cirkler og polygoner
  • At få skildpadden til at skrive tekst
  • At få skildpadden til at tegne udfylde figur