Ditt første skilpaddebroderi#
Nå skal vi lage vårt første skilpaddebroderi. Det første vi må gjøre er å importere TurtleThread (pass på at det er installert).
1from turtlethread import Turtle
Så oppretter vi et skilpaddeobjekt som vi skal bruke for å tegne med
1from turtlethread import Turtle
2
3nål = Turtle()
Nå har vi alt vi trenger for å begynne å lage mønster. La oss begynne med en strek.
For å tegne en strek bruker vi forward
og bestemmer hvor langt vi vil gå (f.eks 300 steg).
1from turtlethread import Turtle
2
3nål = Turtle()
4nål.forward(300)
Denne koden flytter skilpadden 300 steg, men den lager ingen søm. For at skilpadden skal sy mens den flytter seg må vi bruke forward kommandoen inne i en søm-blokk.
Få skilpadda til å brodere mens den går#
Den enkleste søm-blokken er en som heter running_stitch
(Se Oversikt over sømmetyper i TurtleThread for mer detaljer). I en running stitch-block så broderer vi
en rett strek med et fast mellomrom mellom hvert sting.
1from turtlethread import Turtle
2
3nål = Turtle()
4with nål.running_stitch(30):
5 nål.forward(300)
Her har vi lagd kode som flytter skilpadda 300 steg fremover, med en running stitch søm, hvor vi
setter et sting for hvert trettiende steg. Dette tilsvarer at vi setter ca et sting per tredje millimeter.
La oss se på hvordan dette ser ut. For å gjøre det kan vi bruke visualise
-funksjonen, som bruker
det innebygde turtle
-biblioteket for å tegne broderiet vårt.
1from turtlethread import Turtle
2
3nål = Turtle()
4with nål.running_stitch(30):
5 nål.forward(300)
6nål.visualise()
Nå har vi en søm som gir en rett strek fremover.
For å skifte retning kan vi bruke right
og sende inn antall grader vi vil rotere (f.eks 90 grader).
1from turtlethread import Turtle
2
3nål = Turtle()
4with nål.running_stitch(30):
5 nål.forward(300)
6 nål.right(90)
7 nål.forward(300)
8
9nål.visualise()
Med en for løkke kan vi gjenta dette fire ganger for å få en firkant:
1from turtlethread import Turtle
2
3nål = Turtle()
4with nål.running_stitch(30):
5 for side in range(4):
6 nål.forward(300)
7 nål.right(90)
8
9nål.visualise()
Hvis vi bruker en ny løkke og tegner firkanten åtte ganger, så får vi en fin blomst:
1from turtlethread import Turtle
2
3nål = Turtle()
4with nål.running_stitch(30):
5 for kronblad in range(8):
6 for side in range(4):
7 nål.forward(300)
8 nål.right(90)
9 nål.right(45)
10
11nål.visualise()
Det kan ofte være lurt å finne de variable størrelsene i programmet, og la de være pythonvariabler. En variabel størrelse i programmet vi akkurat lagde er hvor mange kronblader, så la oss lage en pythonvariabel som lagrer antallet kronblader
1from turtlethread import Turtle
2
3nål = Turtle()
4
5antall_kronblader = 8
6with nål.running_stitch(30):
7 for kronblad in range(antall_kronblader):
8 for side in range(4):
9 nål.forward(300)
10 nål.right(90)
11 nål.right(360 / antall_kronblader)
12
13nål.visualise()
Prøv selv:
Prøv å endre koden for å endre antall kronblader for å få en blomst slik som den under:
Trykk her for å se hvordan den ferdige koden kan se ut
1from turtlethread import Turtle
2
3nål = Turtle()
4
5antall_kronblader = 10
6with nål.running_stitch(30):
7 for kronblad in range(antall_kronblader):
8 for side in range(4):
9 nål.forward(300)
10 nål.right(90)
11 nål.right(360 / antall_kronblader)
12
13nål.visualise()
Lagre mønsteret#
Nå som vi har et fint motiv kan vi for eksempel lagre det som PNG eller SVG bilder
1from turtlethread import Turtle
2
3nål = Turtle()
4
5antall_kronblader = 8
6with nål.running_stitch(30):
7 for kronblad in range(antall_kronblader):
8 for side in range(4):
9 nål.forward(300)
10 nål.right(90)
11 nål.right(360 / antall_kronblader)
12
13nål.visualise()
14nål.save("blomst.png")
15nål.save("blomst.svg")
Under er blomst.svg
fila csom vi nettopp lagde
Eller vi kan lagre DST-fil for å bruke det med en broderimasking
1from turtlethread import Turtle
2
3nål = Turtle()
4
5antall_kronblader = 8
6with nål.running_stitch(30):
7 for kronblad in range(antall_kronblader):
8 for side in range(4):
9 nål.forward(300)
10 nål.right(90)
11 nål.right(360 / antall_kronblader)
12
13nål.visualise()
14nål.save("blomst.png")
15nål.save("blomst.svg")
16nål.save("blomst.dst")