M14 | L2 – Turtle Graphics: Bazele desenului cu Python

Astăzi vom afla despre:

  • Modulul de desen Turtle
  • Functii de desen: pen, background, color

Aplicațiile pe care le vom folosi sunt:

Replit, python

PROIECTE:

Desene cu ajutorul Turtle

Folosind grafica broaște țestoase, nu numai că puteți crea imagini impresionante cu câteva linii de cod, dar puteți urmări împreună cu broasca țestoasă și puteți vedea cum fiecare linie de cod îi afectează mișcarea. Acest lucru vă va ajuta să înțelegeți logica codului dvs.

  • SquareSpiral1.py – Draws a square spiral import turtle

t = turtle.Pen() for x in range(100):

t.forward(x)

t.left(90)

Să vedem ce se întâmplă când schimbăm unul dintre numerele din program. O modalitate de a învăța lucruri noi despre un program este să vedeți ce se întâmplă atunci când schimbați o parte a acestuia. Nu veți obține întotdeauna un rezultat frumos, dar puteți învăța chiar și atunci când ceva nu merge bine.

import turtle

t = turtle.Pen()

for x in range(100):

t.forward(x)

t.left(91)

Să schimbăm încă o linie de cod: t.forward (x). Am văzut mai devreme că această comandă, sau funcție, mișcă stiloul țestoasei înainte x pixeli și desenează un segment de linie dreaptă; apoi broasca testoasa se intoarce si o face din nou. Ce se întâmplă dacă am schimba acea linie de cod pentru a desena ceva mai complex, precum un cerc?

Din fericire pentru noi, comanda de a desena un cerc de o anumită dimensiune sau rază este la fel de simplă de codificat ca și comanda de a desena o linie dreaptă. Schimbați t.forward (x) la t.circle (x), așa cum se arată în următorul cod.

import turtle

t = turtle.Pen()

for x in range(100):

t.circle(x)

t.left(91)

Aceste spirale sunt forme frumoase, dar nu ar fi mai cool dacă ar fi ceva mai colorate? Să ne întoarcem la codul nostru spiral pătrat și să adăugăm încă o linie la programul nostru, imediat după linia t = turtle.Pen (), pentru a seta culoarea stiloului la roșu:

import turtle

t = turtle.Pen()

t.pencolor(„red”)

for x in range(100):

t.forward(x)

t.left(91)

Să ne gândim la algoritmul – adică la setul de pași – care vor transforma spirala noastră de o singură culoare într-o spirală de patru culori. Majoritatea pașilor sunt la fel ca în programele noastre spirale anterioare, dar există câteva răsuciri adăugate:

  1. Importați modulul broască țestoasă și configurați o broască țestoasă.
  2. Spuneți computerului ce culori dorim să folosim.
  3. Configurați o buclă pentru a trasa 100 de linii în spirala noastră.
  4. Alegeți o culoare diferită a stiloului pentru fiecare parte a spiralei.
  5. Mutați broasca țestoasă înainte pentru a desena fiecare parte.
  6. Întoarceți broasca țestoasă la stânga pentru a vă pregăti să desenați partea următoare.

Mai întâi, avem nevoie de o listă de nume de culori în loc de o singură culoare, așa că vom configura o variabilă de listă numită culori și vom pune patru culori în listă, astfel:

colors = [„red”, „yellow”, „blue”, „green”]

Următorul lucru pe care trebuie să-l facem este să schimbăm culoarea stiloului de fiecare dată când trecem prin bucla de desen. Pentru a face acest lucru, trebuie să mutăm funcția t.pencolor () în grupul de instrucțiuni de sub bucla for. De asemenea, trebuie să spunem funcției pencolor că dorim să folosim una dintre culorile din listă.

Tastați următorul cod și rulați-l.

import turtle

t = turtle.Pen()

colors = [„red”, „yellow”, „blue”, „green”] for x in range(100):

t.pencolor(colors[x%4])

t.forward(x)

t.left(91)

Alt exemplu:

import turtle

t = turtle.Pen()

turtle.bgcolor(„black”)

colors = [„red”, „yellow”, „blue”, „green”] for x in range(100):

t.pencolor(colors[x%4])

t.circle(x)

t.left(91)

Până în prezent, am folosit variabile pentru a schimba culoarea, dimensiunea și unghiul de rotație al formelor noastre în spirală. Să adăugăm o altă variabilă, laturi, pentru a reprezenta numărul de laturi într-o formă. Cum ne va schimba această nouă variabilă spirala?

import turtle

t = turtle.Pen()

turtle.bgcolor(„black”)

  • You can choose between 2 and 6 sides for some cool shapes! sides = 6

colors = [„red”, „yellow”, „blue”, „orange”, „green”, „purple”] for x in range(360):

t.pencolor(colors[x%sides]) t.forward(x * 3/sides + x) t.left(360/sides + 1) t.width(x*sides/200)

Provocare 1:

Încercați să schimbați valoarea laturilor cu un alt număr, să zicem 5. Salvați și rulați programul pentru a vedea cum vă afectează desenul. Acum încercați 4, 3, 2 și chiar 1! Acum, adăugați două sau mai multe culori, între ghilimele, separate prin virgule, la lista de culori din a șasea linie a programului.

Provocare 2:

Ce se întâmplă dacă doriți să permiteți unui utilizator să decidă numărul de laturi în timp ce rulează programul? Folosind ceea ce ați învățat în capitolul 1, puteți cere utilizatorului un număr de laturi și să stocați intrarea în laturile variabile. Singurul nostru pas suplimentar este de a evalua numărul introdus de utilizator. Putem afla ce număr a tastat utilizatorul cu funcția eval (), astfel:

sides = eval(input(„Enter a number of sides between 2 and 6: „))

Provocare 3:

Încercați să schimbați programul ColorSpiral.py într-o formă mai încurcată și abstractă doar prin adăugarea unei ture suplimentare în capătul buclei de desen. Adăugați o linie precum t.left (90) în partea de jos a buclei for pentru a face unghiurile mai clare (nu uitați să indentați sau să depășiți spațiul, pentru a menține declarația în buclă). Rezultatul, prezentat în Figura 2-9, arată ca o jucărie geometrică sau poate o minge făcută din benzi de cauciuc colorate.