Grafika żółwia - rysowanie małej bitmapy
Stronę tą wyświetlono już: 4387 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.

Tytuł:
Python w zadaniach. Programowanie dla młodzieży. Poziom podstawowy
Autor:
Urszula Wiejak, Adrian Wojciechowski

Tytuł:
Python i praca z danymi. Przetwarzanie, analiza, modelowanie i wizualizacja. Wydanie III
Autor:
Avinash Navlani, Armando Fandango, Ivan Idris

Tytuł:
Black Hat Python. Język Python dla hakerów i pentesterów. Wydanie II
Autor:
Justin Seitz, Tim Arnold

Tytuł:
Python z życia wzięty. Rozwiązywanie problemów za pomocą kilku linii kodu
Autor:
Lee Vaughan

Tytuł:
Python dla nastolatków. Projekty graficzne z Python Turtle
Autor:
Krzysztof Łos

Tytuł:
Python i Excel. Nowoczesne środowisko do automatyzacji i analizy danych
Autor:
Felix Zumstein

Tytuł:
Python dla testera
Autor:
Piotr Wróblewski

Tytuł:
Python 3. Projekty dla początkujących i pasjonatów
Autor:
Adam Jurkiewicz

Tytuł:
Machine learning, Python i data science. Wprowadzenie
Autor:
Andreas C. Müller, Sarah Guido

Tytuł:
Python na maturze. Rozwiązania i analiza wybranych zadań programistycznych
Autor:
Roland Zimek