import turtle import math okno = turtle.Screen() stefan = turtle.Turtle() stefan.shape("turtle") stefan.speed(0) figura1 = [[10,10],[20,10],[20,30],[30,30],[30,40],[10,40]] def Rysuj(f): stefan.penup() for p in f: stefan.goto(p) stefan.pendown() stefan.goto(f[0]) def Przesun(f,v): rezultat = [] xv, yv = v for p in f: x,y = p rezultat.append((x+xv,y+yv)) return rezultat def Skaluj(f,s): rezultat = [] for p in f: x,y = p rezultat.append((x*s,y*s)) return rezultat def SymetriaY(f): rezultat = [] for p in f: x,y = p rezultat.append((-x,y)) return rezultat def SymetriaX(f): rezultat = [] for p in f: x,y = p rezultat.append((x,-y)) return rezultat def SymetriaXY(f): rezultat = [] for p in f: x,y = p rezultat.append((-x,-y)) return rezultat def Obroc(f,k): rezultat = [] krad = k * math.pi / 180 for p in f: x, y = p rezultat.append((x * math.cos(krad) - y * math.sin(krad),\ x * math.sin(krad) + y * math.cos(krad))) return rezultat #------------------------------------------------------------------------------- # Przykłady użycia # Rysuj(figura1) figura2 = Przesun(figura1, (100,100)) Rysuj(figura2) for i in range(5): figura3 = Skaluj(figura1, i+1) figura3 = Przesun(figura3, (50*i, -30*i)) Rysuj(figura3) figura4 = SymetriaY(figura1) Rysuj(figura4) figura5 = SymetriaX(figura1) Rysuj(figura5) figura6 = Obroc(figura1,135) Rysuj(figura6) #------------------------------------------------------------------------------- stefan.penup() stefan.goto(0,0) okno.mainloop()