Tegne en sirkel i Python

Ett av læreverktøyene som er inkludert i Python heter turtle. Det er en figur som kan animeres ved hjelp av noen få enkle linjer.

Det vi skal gjøre i dette programmet er å tegne en sirkel med forskjellige farger.

Komme i gang

Det vi skal komme fram til skal ligne på følgende figur.

Koden for å tegne figuren er følgende. Det anbefales på det sterkeste å skrive inn koden selv. Men om du ikke vil kan du kopiere og lime inn koden i IDLE eller VSCode.

Viktig! Mellomrommene i koden etter for-løkken er veldig viktig. De må ha samme antall mellomrom slik at de havner på samme kolonne. Vanlig er å bruke tab for å sette inn 4 mellomrom.

import turtle

t=turtle.Turtle()
position=(100,0)
t.left(90)
colors=["blue", "red", "violet", "grey", "pink", "yellow", "green", "black"]
for i in colors:
    print(i)
    t.goto(position)
    t.fillcolor(i)
    t.begin_fill()
    t.circle(100,45)
    position=t.position()
    print(position)
    t.goto(0,0)
    t.end_fill()

Når du har lagret filen i f.eks paraply.py, så kan du kjøre den ved å trykke på F5.

Animasjon

Om alt går bra, så skal følgende animasjon vises på skjermen.

Forklaring av koden

Om man ikke har noe erfaring med kode og programmering, så kan koden virke veldig kompleks og fremmed.

Han som først laget Python er en mann fra Nederland som heter Guido van Rossum. Selv om han er fra Nederland, så bruker man engelsk i selve programmeringsspråket.

Så til forklaringen av koden. Det gjør vi med kommentarer i koden. Kommentarer i koden vil bli ignorert av datamaskinen. En kommentar er som en beskjed til deg i fremtiden.

Grønn er vanlig farge på kommentarer.

# Med "import" sier vi at skal bruke en modul som heter "turtle"
import turtle

# Lag en variabel "t" som skal være en "skilpadde"
t=turtle.Turtle()

# Lag en variabel som inneholder 2 elementer, som skal være x og y
position=(100,0)

# Rotere skilpadden til "venstre" med 90 grader.
t.left(90)

# Farger som skilpadden skal fylle i sirkelen. Det er 8 farger. Husk dette. Det er et array (rekke).
colors=["blue", "red", "violet", "grey", "pink", "yellow", "green", "black"]

# For-løkke i Python. Det betyr: For hver farge i "colors", legg det i variabelen "i".
for i in colors:
    # Skriv ut fargen til konsollvinduet der koden kjører
    print(i)

    # Flytte skilpadden til posisjon som er lagret i variabelen "position"
    t.goto(position)

    # Sette fyllfarge til den som er lagret i "i"
    t.fillcolor(i)

    # Start å tegne fra nå
    t.begin_fill()

    # Tegn en sirkel som har en radius på 100 pixler, og tegne 45 grader av den sirkelen.
    t.circle(100,45)

    # Lagre ny posisjon i variabelen "position"
    position=t.position()

    # Skriv ut ny posisjon til kjørevinduet
    print(position)

    # Gå til koordinat 0,0
    t.goto(0,0)

    # Avslutt fyll av farge, og vis det på skjermen.
    t.end_fill()

Spørsmål:

  • Hva skjer om du ikke roterer skilpadden med 90 grader for for-løkken? Hva skjer om du roterer med 45 eller 135 grader?
  • I for-løkken når du tegner 45 grader av en sirkel, hva skjer hvis:
    • Du tegner -45 grader?
    • Du tegner med 20 grader?
  • Hva skjer om du ikke har 8 farger i colors?
  • Hva skjer om du har flere enn 8 farger i colors?