Stronę tą wyświetlono już: 5726 razy
Pomyślałem sobie, że napiszę mały skrypt, którego zadaniem będzie narysowanie małej bitmapy w grafice żółwia. Jak pomyślałem tak też i uczyniłem. Kod skryptu wygląda następująco:
from PIL import Image # import klasy Image z modułu PIL (potrzebne do obsługi ładowania grafiki)
import turtle as tr # import modułu turtle do rysowania grafiki żółwia potrzebnej
img = Image.open("Einstein.jpg") # tutaj ładuję plik graficzny, który będzie rysowany piksel po pikselu
img = img.resize((100,100)) # zmiana rozmiaru bitmapy do rozsądnych wymiarów
img_data = img.getdata() # pobieranie kolorów poszczególnych pikseli bitmapy
def drawLine(move,angle, c=None): # funkcja, która będzie odpowiedzialna za rysowanie pikseli
if c != None: # gdy kolor nie jest równy None to
tr.pencolor(c[0] / 255, c[1] / 255, c[2] / 255) # ustawiaj kolor
tr.left(angle) # obrót o zadany kąt
tr.forward(move) # ruch do przodu o zadaną wartość
tr.speed(0) # ustawiam maksymalną prędkość
size = 2 # rozmiar pędzla
tr.pensize(size) # ustawienie rozmiaru pędzla
tr.left(-90) # ustawienie początkowego położenia żółwia
for x in range(img.width): # współrzędne dla x
for y in range(img.height): # współrzędne dla y
drawLine(size,0,img_data[x + y * img.width][:3]) # rysowanie poszczególnych pikseli
drawLine(size,90) # trzeba teraz poprawnie ustawić żółwia w celu rysowania następnej linijki
drawLine(size * img.height,90) # to też związane z ustawieniem żółwia w poprawnej pozycji do rysowania następnej linii
tr.left(180) # obrót żółwia o 180 stopni
d=input("") # a to, żeby okno z grafiką nie znikało po zakończeniu rysowania.
Do działania skryptu potrzebna jest plik graficzny, ja wybrałem plik z wizerunkiem Einsteina. Poniżej zamieszczam krótki filmik działania programu.