„miniLOGIA grafika w Logo” to konkurs informatyczny dla uczniów szkół podstawowych województwa mazowieckiego organizowany przez Ośrodek Edukacji Informatycznej i Zastosowań Komputerów (OEIiZK) na zlecenie Mazowieckiego Kuratora Oświaty. Konkurs składa się z trzech etapów, podczas których uczniowie samodzielnie rozwiązują zadania graficzne w językach Logo lub Python (z zainstalowanym modułem turtle).
W serii artykułów przedstawię rozwiązania zadań w języku Python, opracowane przeze mnie na potrzeby tej strony. Jako środowisko, w którym opracowałem rozwiązania zadań wykorzystałem zalecane przez organizatora oprogramowanie Python 3.5.*.
Zadanie 1
Napisz bezparametrową procedurę/funkcję panda, po wywołaniu której powstanie rysunek głowy pandy, taki jak poniżej. Długość boku największego wielokąta wynosi 80, boki wielokątów tworzących oko i ucho pandy są tej samej długości. Pozostałe długości odcinków i proporcje odczytaj z rysunków pomocniczych.
Rozwiązanie:
from turtle import *
a=10
def szescian(bok):
begin_fill()
for i in range(6):
fd(bok)
rt(60)
end_fill()
def oko():
pu()
rt(60)
fd(8*a)
lt(60)
fd(a)
for i in range(2):
rt(60)
fd(a*2)
rt(60)
bk(a)
pd()
fillcolor('black')
szescian(a*4)
fd(a)
fillcolor('white')
szescian(a*2)
fd(a/2)
fillcolor('black')
szescian(a)
pu()
bk(a/2)
rt(120)
for i in range(2):
fd(a*2)
lt(60)
fd(a)
rt(60)
fd(a*8)
rt(120)
pd()
def ucho():
fd(a*2)
begin_fill()
for i in range(8):
fd(a*4)
lt(45)
end_fill()
fd(a*6)
def oko_i_ucho():
oko()
ucho()
rt(30)
def nos_i_usta():
pu()
rt(60)
fd(8*a)
lt(30)
szescian(a*2)
lt(90)
pd()
for i in range(4):
fd(2*a)
rt(45)
for i in range(4):
lt(45)
bk(2*a)
lt(60)
for i in range(4):
fd(2*a)
lt(45)
for i in range(4):
rt(45)
bk(2*a)
def glowa():
for i in range(4):
fd(a*8)
rt(30)
oko_i_ucho()
for i in range(3):
fd(a*8)
rt(30)
oko_i_ucho()
for i in range(3):
fd(a*8)
rt(30)
nos_i_usta()
def panda():
reset()
pu()
lt(90)
bk(200)
lt(90)
bk(40)
pd()
glowa()
Wynik działania programu:
panda()


