Всем привет, кто изучает Python и хочет немного порисовать.
Импортируем ее в нашу программу:
import turtle
Эта библиотека позволяет создавать окно, которое можно использовать как "холст", на котором мы можем рисовать линии "виртуальным карандашом". Чтобы создать такой "холст и карандаш" - создаем переменную t, которой присваиваем вызов объекта библиотеки turtle:
t = turtle.Turtle()
Добавляем команду mainloop - цикл обновления окна, без которого программа будет просто закрываться сразу после запуска.
t.screen.mainloop()
Эта строчка должны быть в самом конце нашей программы и все что мы будем делать - будет между этими двумя строчками. То есть как то так:
t = turtle.Turtle()
# Здесь будем писать весь код
t.screen.mainloop()
При запуске появляется окно, с черной стрелкой по центру - это "грифель" карандаша. Напишем команду отрисовки линии - t. forward, в скобках указывается длина линии:
t.forward(100)
Чтобы поворачивать стрелочку для рисования будем использовать команду:
t.left(90)
Где 90 - угол поворота. Обращаю внимание что стрелочка просто повернется, чтобы дальше рисовать - понадобиться снова применить команду forward. Например нарисуем квадрат:
import turtle
t = turtle.Turtle()
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.screen.mainloop().
-----------------------------------------
Другие команды библиотеки, если интересно я выложу в следующей статье. А пока поразвлекаемся, а заодно рассмотрим возможности библиотеки, просто вставьте код и увидите замечательные рисунки:
1. самолет
import turtle
'''Солнце'''
turtle.color('red')
turtle.penup()
turtle.goto(250,200)
turtle.pendown()
turtle.begin_fill()
turtle.circle(50)
turtle.end_fill()
turtle.color('black','blue')
turtle.begin_fill()
'''Самолет'''
turtle.penup()
turtle.home()
turtle.pendown()
turtle.pensize(5)
turtle.goto(-300,150)
turtle.goto(100,50)
turtle.goto(0,0)
turtle.end_fill()
turtle.goto(-30,-125)
turtle.goto(-50,-50)
turtle.begin_fill()
turtle.goto(-300,150)
turtle.goto(-125,-125)
turtle.goto(-50,-50)
turtle.goto(-30,-125)
turtle.goto(-85,-85)
turtle.end_fill()
'''Линия'''
turtle.pensize(3)
turtle.penup()
turtle.goto(75,25)
turtle.pendown()
turtle.goto(200,0)
turtle.penup()
turtle.goto(50,-5)
turtle.pendown()
turtle.goto(250,-30)
turtle.penup()
turtle.goto(10,-80)
turtle.pendown()
turtle.goto(100,-150)
turtle.penup()
turtle.goto(-80,-125)
turtle.pendown()
turtle.goto(120,-200)
turtle.ht()
turtle.exitonclick()
2. Розы
import turtle as T
import time
T.setup(1000,800,0,0)
T.speed(0)
T.penup()
T.seth(90)
T.fd(340)
T.seth(0)
T.pendown()
T.speed(5)
T.begin_fill()
T.fillcolor('red')
T.circle(50,30)
for i in range(10):
T.fd(1)
T.left(10)
T.circle(40,40)
for i in range(6):
T.fd(1)
T.left(3)
T.circle(80,40)
for i in range(20):
T.fd(0.5)
T.left(5)
T.circle(80,45)
for i in range(10):
T.fd(2)
T.left(1)
T.circle(80,25)
for i in range(20):
T.fd(1)
T.left(4)
T.circle(50,50)
time.sleep(0.1)
T.circle(120,55)
T.speed(0)
T.seth(-90)
T.fd(70)
T.right(150)
T.fd(20)
T.left(140)
T.circle(140,90)
T.left(30)
T.circle(160,100)
T.left(130)
T.fd(25)
T.penup()
T.right(150)
T.circle(40,80)
T.pendown()
T.left(115)
T.fd(60)
T.penup()
T.left(180)
T.fd(60)
T.pendown()
T.end_fill()
T.right(120)
T.circle(-50,50)
T.circle(-20,90)
T.speed(1)
T.fd(75)
T.speed(0)
T.circle(90,110)
T.penup()
T.left(162)
T.fd(185)
T.left(170)
T.pendown()
T.circle(200,10)
T.circle(100,40)
T.circle(-52,115)
T.left(20)
T.circle(100,20)
T.circle(300,20)
T.speed(1)
T.fd(250)
T.penup()
T.speed(0)
T.left(180)
T.fd(250)
T.circle(-300,7)
T.right(80)
T.circle(200,5)
T.pendown()
T.left(60)
T.begin_fill()
T.fillcolor('green')
T.circle(-80,100)
T.right(90)
T.fd(10)
T.left(20)
T.circle(-63,127)
T.end_fill()
T.penup()
T.left(50)
T.fd(20)
T.left(180)
T.pendown()
T.circle(200,25)
T.penup()
T.right(150)
T.fd(180)
T.right(40)
T.pendown()
T.begin_fill()
T.fillcolor('green')
T.circle(-100,80)
T.right(150)
T.fd(10)
T.left(60)
T.circle(-80,98)
T.end_fill()
T.penup()
T.left(60)
T.fd(13)
T.left(180)
T.pendown()
T.speed(1)
T.circle(-200,23)
T.exitonclick()
3. Серая вишня
import turtle as T
from random import *
from math import *
def tree(n, l):
T.pd()
t = cos(radians(T.heading() + 45)) / 8 + 0.25
T.pencolor(t, t, t)
T.pensize(n / 4)
T.forward(l)
if n > 0:
b = random() * 15 + 10
c = random() * 15 + 10
d = l * (random() * 0.35 + 0.6)
T.right(b)
tree(n - 1, d)
T.left(b + c)
tree(n - 1, d)
T.right(c)
else:
T.right(90)
n = cos(radians(T.heading() - 45)) / 4 + 0.5
T.pencolor(n, n, n)
T.circle(2)
T.left(90)
T.pu()
T.backward(l)
T.bgcolor(0.5, 0.5, 0.5)
T.ht()
T.speed(0)
T.tracer(0, 0)
T.left(90)
T.pu()
T.backward(300)
tree(13, 100)
T.done()
4. Падение красок
import turtle as T
from turtle import *
from random import *
from math import *
def tree(n,l):
T.pd () # Записать
# Эффект тени
t = cos(radians(T.heading()+45))/8+0.25
T.pencolor(t,t,t)
T.pensize(n/3)
T.forward (l) # Рисуем ветки
if n>0:
b = random () * 15 + 10 # угол отклонения правой ветви
c = random () * 15 + 10 # Угол отклонения левой ветви
d = l * (random () * 0.25 + 0.7) # Длина следующей ветки
# Повернуть вправо на определенный угол, нарисовать правую ветку
T.right(b)
tree(n-1,d)
# Левый поворот на определенный угол, рисуем левую ветку
T.left(b+c)
tree(n-1,d)
'''Вернуться'''
T.right(c)
else:
# Рисуем листья
T.right(90)
n=cos(radians(T.heading()-45))/4+0.5
T.pencolor(n,n*0.8,n*0.8)
T.circle(3)
T.left(90)
# Добавьте 0,3 раза падающие листья
if(random()>0.7):
T.pu()
#
t = T.heading()
an = -40 +random()*40
T.setheading(an)
dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)
T.forward(dis)
T.setheading(t)
# Рисование листьев
T.pd()
T.right(90)
n = cos(radians(T.heading()-45))/4+0.5
T.pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)
T.circle(2)
T.left(90)
T.pu()
'''Возвращение'''
t=T.heading()
T.setheading(an)
T.backward(dis)
T.setheading(t)
T.pu()
T.backward (l) # возврат
bgcolor (0.5,0.5,0.5) # Цвет фона
ht () # Скрыть черепаху
speed (0) # скорость 1-10 прогрессивная, 0 - самая быстрая
tracer(0,0)
pu () # Ручка вверх
backward(100)
left (90) # Повернуть влево на 90 градусов
pu () # Ручка вверх
назад (300) # Назад 300
tree (12,100) # Рекурсивный 7 слоев
done()
3. Динамическое вишневое дерево
import random
import time
import turtle as T
# Рисуем туловище из цветущей сакуры (60, t)
def Tree(branch, t):
time.sleep(0.0005)
if branch > 3:
if 8 <= branch <= 12:
if random.randint(0, 2) == 0:
t.color ('snow') # белый
else:
t.color ('lightcoral') # светлый коралл
t.pensize(branch / 3)
elif branch < 8:
if random.randint(0, 1) == 0:
t.color('snow')
else:
t.color ('lightcoral') # светлый коралл
t.pensize(branch / 2)
else:
t.color ('sienna') # (zhě)
t.pensize(branch / 10) # 6
t.forward(branch)
a = 1.5 * random.random()
t.right(20 * a)
b = 1.5 * random.random()
Tree(branch - 10 * b, t)
t.left(40 * a)
Tree(branch - 10 * b, t)
t.right(20 * a)
t.up()
t.backward(branch)
t.down()
# Падающие лепестки
def Petal(m, t):
for i in range(m):
a = 200 - 400 * random.random()
b = 10 - 20 * random.random()
t.up()
t.forward(b)
t.left(90)
t.forward(a)
t.down()
t.color ('lightcoral') # светлый коралл
t.circle(1)
t.up()
t.backward(a)
t.right(90)
t.backward(b)
# Область рисования
t = T.Turtle()
# Размер холста
w = T.Screen()
t.hideturtle () # Скрыть кисть
t.getscreen().tracer(5, 0)
w.screensize (bg = 'пшеница') # пшеница пшеница
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')
# Рисуем туловище из цветущей сакуры
Tree(60, t)
# Падающие лепестки
Petal(200, t)
w.exitonclick()
4. Жирный синий
# * -- utf-8 -- *
# Author: Tang
import turtle as t
t.speed(10)
t.pensize(8)
t.hideturtle()
t.screensize(500, 500, bg='white')
#
t.fillcolor('red')
t.begin_fill()
t.circle(120)
t.end_fill()
t.pensize(3)
t.fillcolor('white')
t.begin_fill()
t.circle(100)
t.end_fill()
t.pu()
t.home()
t.goto(0, 134)
t.pd()
t.pensize(4)
t.fillcolor("red")
t.begin_fill()
t.circle(18)
t.end_fill()
t.pu()
t.goto(7, 155)
t.pensize(2)
t.color('white', 'white')
t.pd()
t.begin_fill()
t.circle(4)
t.end_fill()
t.pu()
t.goto(-30, 160)
t.pensize(4)
t.pd()
t.color('black', 'white')
t.begin_fill()
a = 0.4
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
t.lt (3) # повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
else:
a = a - 0.08
t.lt(3)
t.fd(a)
t.end_fill()
t.pu()
t.goto(30, 160)
t.pensize(4)
t.pd()
t.color('black', 'white')
t.begin_fill()
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
t.lt (3) # повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
else:
a = a - 0.08
t.lt(3)
t.fd(a)
t.end_fill()
t.pu()
t.goto(-38, 190)
t.pensize(8)
t.pd()
t.right(-30)
t.forward(15)
t.right(70)
t.forward(15)
t.pu()
t.goto(15, 185)
t.pensize(4)
t.pd()
t.color('black', 'black')
t.begin_fill()
t.circle(13)
t.end_fill()
t.pu()
t.goto(13, 190)
t.pensize(2)
t.pd()
t.color('white', 'white')
t.begin_fill()
t.circle(5)
t.end_fill()
t.pu()
t.home()
t.goto(0, 134)
t.pensize(4)
t.pencolor('black')
t.pd()
t.right(90)
t.forward(40)
t.pu()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(10)
t.forward(80)
t.pu()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(6)
t.forward(80)
t.pu()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(0)
t.forward(80)
# Борода слева
t.pu()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(170)
t.forward(80)
t.pu()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(174)
t.forward(80)
t.pu()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pd()
t.left(180)
t.forward(80)
t.pu()
t.goto(-70, 70)
t.pd()
t.color('black', 'red')
t.pensize(6)
t.seth(-60)
t.begin_fill()
t.circle(80, 40)
t.circle(80, 80)
t.end_fill()
t.pu()
t.home()
t.goto(-80, 70)
t.pd()
t.forward(160)
t.pu()
t.home()
t.goto(-50, 50)
t.pd()
t.pensize(1)
t.fillcolor("red")
t.seth(40)
t.begin_fill()
t.circle(-40, 40)
t.circle(-40, 40)
t.seth(40)
t.circle(-40, 40)
t.circle(-40, 40)
t.seth(220)
t.circle(-80, 40)
t.circle(-80, 40)
t.end_fill()
# Галстук
t.pu()
t.goto(-70, 12)
t.pensize(14)
t.pencolor('red')
t.pd()
t.seth(-20)
t.circle(200, 30)
t.circle(200, 10)
# Колокол
t.pu()
t.goto(0, -46)
t.pd()
t.pensize(3)
t.color("black")
t.begin_fill()
t.circle(25)
t.end_fill()
t.pu()
t.goto(-5, -40)
t.pd()
t.pensize(2)
t.color("black")
t.begin_fill()
t.circle(5)
t.end_fill()
t.pensize(3)
t.right(115)
t.forward(7)
t.mainloop()
5. Свинка Пеппа
#!/usr/bin/env python2
# coding=utf-8
import turtle as t
t.pensize(4)
t.hideturtle()
t.colormode(255)
t.color((255, 155, 192), "pink")
t.setup(840, 500)
t.speed(10)
# Нос
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
t.begin_fill()
a = 0.4
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
t.lt (3) # повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
else:
a = a - 0.08
t.lt(3)
t.fd(a)
t.end_fill()
t.pu()
t.seth(90)
t.fd(25)
t.seth(0)
t.fd(10)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()
t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()
# Голова
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300, -30)
t.circle(100, -60)
t.circle(80, -100)
t.circle(150, -20)
t.circle(60, -95)
t.seth(161)
t.circle(-300, 15)
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
a = 0.4
for i in range(60):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
t.lt (3) # повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
else:
a = a - 0.08
t.lt(3)
t.fd(a)
t.end_fill()
# Уши
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 56)
t.end_fill()
# Глаза
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
# Гилл
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
# рот
t.color(239, 69, 19)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30, 40)
t.circle(40, 80)
# Тело
t.color("red", (255, 99, 71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100, 10)
t.circle(300, 30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300, 30)
t.circle(100, 3)
t.color((255, 155, 192), (255, 100, 100))
t.seth(-135)
t.circle(-80, 63)
t.circle(-150, 24)
t.end_fill()
# рука
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300, 15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20, 90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300, 15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20, 90)
# Футов
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
# Хвост
t.pensize(4)
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70, 20)
t.circle(10, 330)
t.circle(70, 30)
6. Iphone 4
import turtle
''' Прямоугольник со скругленными углами, параметры: длина (ширина), высота (высота), cor_angle (значение в радианах) cor_rad (положение радиуса круговой дорожки) '''
def round_rectangle(length, high, cor_angle, cor_rad):
for i in range(2):
turtle.fd(high)
turtle.circle(cor_rad, cor_angle)
turtle.fd(length)
turtle.circle(cor_rad, cor_angle)
def main2():
turtle.setup (1300, 800, 0, 0) # Размер стартового окна, координаты верхнего левого и правого углов
pythonsize = 2
turtle.pensize (pythonsize) # ширина бега
turtle.speed(10)
turtle.seth (90) # Направление движения (угол) при запуске
# Внешняя граница
turtle.penup()
turtle.goto(202, -202)
turtle.pendown()
round_rectangle(244, 484, 90, 30)
# Заполнить
turtle.penup()
turtle.goto(200, -200)
turtle.pendown()
turtle.begin_fill()
round_rectangle(240, 480, 90, 30)
turtle.end_fill()
# Экран мобильного телефона
turtle.pencolor("black")
turtle.penup()
turtle.goto(185, -150)
turtle.pendown()
turtle.begin_fill()
turtle.color("black")
round_rectangle(270, 380, 90, 0)
turtle.end_fill()
# Динамик
turtle.penup()
turtle.goto(80, 265)
turtle.pendown()
turtle.begin_fill()
round_rectangle(60, 4, 90, 1)
turtle.end_fill()
# Маленький черный наушник
turtle.penup()
turtle.goto(67, 290)
turtle.pendown()
turtle.begin_fill()
round_rectangle(36, 4, 90, 1)
turtle.end_fill()
# камера
turtle.penup()
turtle.goto(0, 265)
turtle.pendown()
turtle.begin_fill()
turtle.circle(6, 360)
turtle.end_fill()
# дом
turtle.penup()
turtle.goto(75, -185)
turtle.pendown()
turtle.circle(25, 360)
# дом узор
turtle.penup()
turtle.goto(60, -190)
turtle.pendown()
turtle.draw(10, 10, 90, 5)
main2()
7. Миньоны
import turtle as t
# t = turtle.Turtle()
wn = t.Screen()
t.colormode(255)
t.hideturtle()
t.speed(0)
t.penup()
t.pensize(4)
t.goto(100,0)
t.pendown()
t.left(90)
t.color((0,0,0),(255,255,0))
# Рисунок раскраски тела
t.begin_fill()
t.forward(200)
t.circle(100,180)
t.forward(200)
t.circle(100,180)
t.end_fill()
# Рисование и цвет правого глаза
t.pensize(12)
t.penup()
t.goto(-100,200)
t.pendown()
t.right(100)
t.circle(500,23)
t.pensize(3)
t.penup()
t.goto(0,200)
t.pendown()
t.seth(270)
t.color("black","white")
t.begin_fill()
t.circle(30)
t.end_fill()
t.penup()
t.goto(15,200)
t.pendown()
t.color("black","black")
t.begin_fill()
t.circle(15)
t.end_fill()
t.penup()
t.goto(35,205)
t.color("black","white")
t.begin_fill()
t.circle(5)
t.end_fill()
# Рисование и цвет левого глаза
t.pensize(3)
t.penup()
t.goto(0,200)
t.pendown()
t.seth(90)
t.color("black","white")
t.begin_fill()
t.circle(30)
t.end_fill()
t.penup()
t.goto(-15,200)
t.pendown()
t.color("black","black")
t.begin_fill()
t.circle(15)
t.end_fill()
t.penup()
t.goto(-35,205)
t.color("black","white")
t.begin_fill()
t.circle(5)
t.end_fill()
#
t.penup()
t.goto(-20,100)
t.pendown()
t.seth(270)
t.color("black","white")
t.begin_fill()
t.circle(20,180)
t.left(90)
t.forward(40)
t.end_fill()
# Рисунок и раскраска штанов
t.penup()
t.goto(-100,0)
t.pendown()
t.seth(0)
t.color("black","blue")
t.begin_fill()
t.forward(20)
t.left(90)
t.forward(40)
t.right(90)
t.forward(160)
t.right(90)
t.forward(40)
t.left(90)
t.forward(20)
t.seth(270)
t.penup()
t.goto(-100,0)
t.circle(100,180)
t.end_fill()
# Левый ремень для брюк
t.penup()
t.goto(-70,20)
t.pendown()
t.color("black","blue")
t.begin_fill()
t.seth(45)
t.forward(15)
t.left(90)
t.forward(60)
t.seth(270)
t.forward(15)
t.left(40)
t.forward(50)
t.end_fill()
t.left(180)
t.goto(-70,30)
t.dot()
# Правый пояс для брюк
t.penup()
t.goto(70,20)
t.pendown()
t.color("black","blue")
t.begin_fill()
t.seth(135)
t.forward(15)
t.right(90)
t.forward(60)
t.seth(270)
t.forward(15)
t.right(40)
t.forward(50)
t.end_fill()
t.left(180)
t.goto(70,30)
t.dot()
'''Нога'''
t.penup()
t.goto(4,-100)
t.pendown()
t.seth(270)
t.color("black","black")
t.begin_fill()
t.forward(30)
t.left(90)
t.forward(40)
t.seth(20)
t.circle(10,180)
t.circle(400,2)
t.seth(90)
t.forward(20)
t.goto(4,-100)
t.end_fill()
t.penup()
t.goto(-4,-100)
t.pendown()
t.seth(270)
t.color("black","black")
t.begin_fill()
t.forward(30)
t.right(90)
t.forward(40)
t.seth(20)
t.circle(10,-225)
t.circle(400,-3)
t.seth(90)
t.forward(21)
t.goto(-4,-100)
t.end_fill()
#
t.penup()
t.goto(-100,50)
t.pendown()
t.seth(225)
t.color("black","yellow")
t.begin_fill()
t.forward(40)
t.left(90)
t.forward(35)
t.seth(90)
t.forward(50)
t.end_fill()
'''Правая рука'''
t.penup()
t.goto(100,50)
t.pendown()
t.seth(315)
t.color("black","yellow")
t.begin_fill()
t.forward(40)
t.right(90)
t.forward(36)
t.seth(90)
t.forward(50)
t.end_fill()
#
t.penup()
t.goto(0,-100)
t.pendown()
t.forward(30)
#
t.penup()
t.goto(0,-20)
t.pendown()
t.color("yellow")
t.begin_fill()
t.seth(45)
t.forward(20)
t.circle(10,180)
t.right(90)
t.circle(10,180)
t.forward(20)
t.end_fill()
#
t.penup()
t.color("black")
t.goto(-100,-20)
t.pendown()
t.circle(30,90)
t.penup()
t.goto(100,-20)
t.pendown()
t.circle(30,-90)
#
t.penup()
t.goto(2,300)
t.pendown()
t.begin_fill()
t.seth(135)
t.circle(100,40)
t.end_fill()
t.penup()
t.goto(2,300)
t.pendown()
t.begin_fill()
t.seth(45)
t.circle(100,40)
t.exitonclick()
8. Пикачу
# coding:utf-8
import turtle as t
import time
# Пикачу
# Базовые настройки
t.screensize(800, 600)
t.pensize (2) # Установите размер пера
t.speed (10) # Установите скорость щетки на 10
# Нарисовать функцию левой частичной кривой
def radian_left(ang, dis, step, n):
for i in range(n):
dis + = step # dis увеличить шаг
t.lt (ang) # Повернуть влево ang градусов
t.fd (dis) # Длина шага dis
def radian_right(ang, dis, step, n):
for i in range(n):
dis += step
t.rt (ang) # Повернуть влево ang градусов
t.fd (dis) # Длина шага dis
# Рисуем уши
def InitEars():
t.color("black", "yellow")
# Изгиб левого уха
t.pu () # Возьмите ручку
t.goto (-50, 100) # Исходное положение пера
t.pd () # Перо
t.setheading (110) # Угол пера
t.begin_fill()
radian_left(1.2, 0.4, 0.1, 40)
t.setheading (270) # Угол щетки
radian_left(1.2, 0.4, 0.1, 40)
t.setheading (44) # Угол пера
t.forward(32)
t.end_fill()
# Кривая правого уха
t.pu () # Возьмите ручку
t.goto (50, 100) # Исходное положение пера
t.pd () # Перо
t.setheading (70) # Угол пера
t.begin_fill()
radian_right(1.2, 0.4, 0.1, 40)
t.setheading (270) # Угол щетки
radian_right(1.2, 0.4, 0.1, 40)
t.setheading (136) # Угол щетки
t.forward(32)
t.end_fill()
# Уши черные
t.begin_fill()
t.fillcolor("black")
t.pu () # Возьмите ручку
t.goto (88, 141) # Исходное положение пера
t.pd () # Перо
t.setheading (35) # Угол пера
radian_right(1.2, 1.6, 0.1, 16)
t.setheading (270) # Угол щетки
radian_right(1.2, 0.4, 0.1, 25)
t.setheading (132) # Угол щетки
t.forward(31)
t.end_fill()
t.begin_fill()
t.fillcolor("black")
t.pu () # Возьмите ручку
t.goto (-88, 141) # Исходное положение пера
t.pd () # Перо
t.setheading (145) # Угол щетки
radian_left(1.2, 1.6, 0.1, 16)
t.setheading (270) # Угол щетки
radian_left(1.2, 0.4, 0.1, 25)
t.setheading (48) # Угол пера
t.forward(31)
t.end_fill()
# Рисуем хвост
def InitTail():
# Хвост
t.begin_fill()
t.fillcolor("yellow")
t.pu () # Возьмите ручку
t.goto (64, -140) # Исходное положение пера
t.pd () # Перо
t.setheading (10) # Угол пера
t.forward(20)
t.setheading (90) # Угол пера
t.forward(20)
t.setheading (10) # Угол пера
t.forward(10)
t.setheading (80) # Угол пера
t.forward(100)
t.setheading (35) # Угол пера
t.forward(80)
t.setheading (260) # Угол щетки
t.forward(100)
t.setheading (205) # Угол щетки
t.forward(40)
t.setheading (260) # Угол щетки
t.forward(37)
t.setheading (205) # Угол щетки
t.forward(20)
t.setheading (260) # Угол щетки
t.forward(25)
t.setheading (175) # Угол щетки
t.forward(30)
t.setheading (100) # Угол пера
t.forward(13)
t.end_fill()
# Рисуем ноги
def InitFoots():
# Футов
t.begin_fill()
t.fillcolor("yellow")
t.pensize(2)
t.pu () # Возьмите ручку
t.goto (-70, -200) # Исходное положение пера
t.pd () # Перо
t.setheading (225) # Угол щетки
radian_left(0.5, 1.2, 0, 12)
radian_left(35, 0.6, 0, 4)
radian_left(1, 1.2, 0, 18)
t.setheading (160) # Угол пера
t.forward(13)
t.end_fill()
t.begin_fill()
t.fillcolor("yellow")
t.pensize(2)
t.pu () # Возьмите ручку
t.goto (70, -200) # Исходное положение пера
t.pd () # Перо
t.setheading (315) # Угол щетки
radian_right(0.5, 1.2, 0, 12)
radian_right(35, 0.6, 0, 4)
radian_right(1, 1.2, 0, 18)
t.setheading (20) # Угол щетки
t.forward(13)
t.end_fill()
# Нарисуйте тело
def InitBody():
# Контур
t.begin_fill()
t.pu () # Возьмите ручку
t.goto (112, 0) # Исходное положение пера
t.pd () # Перо
t.setheading (90) # Угол пера
t.circle(112, 180)
t.setheading (250) # Угол щетки
radian_left(1.6, 1.3, 0, 50)
radian_left(0.8, 1.5, 0, 25)
t.setheading (255) # Угол пера
radian_left(0.4, 1.6, 0.2, 27)
radian_left(2.8, 1, 0, 45)
radian_right(0.9, 1.4, 0, 31)
t.setheading (355) # Угол щетки
radian_right(0.9, 1.4, 0, 31)
radian_left(2.8, 1, 0, 45)
radian_left(0.4, 7.2, -0.2, 27)
t.setheading (10) # Угол пера
radian_left(0.8, 1.5, 0, 25)
radian_left(1.6, 1.3, 0, 50)
t.end_fill()
def InitEyes():
# Левый глаз
t.begin_fill()
t.fillcolor("black")
t.pu () # Возьмите ручку
t.goto (-46, 10) # Исходное положение пера
t.pd () # Перо
t.setheading (90) # Угол пера
t.circle(5, 360)
t.end_fill()
# Правый глаз
t.begin_fill()
t.fillcolor("black")
t.pu () # Возьмите ручку
t.goto (46, 10) # Исходное положение пера
t.pd () # Перо
t.setheading (-90) # Угол щетки
t.circle(5, 360)
t.end_fill()
# Рисуем лицо
def InitFace():
# Лицо
t.begin_fill()
t.fillcolor("red")
t.pu () # Возьмите ручку
t.goto (-63, -10) # Исходное положение пера
t.pd () # Перо
t.setheading (90) # Угол пера
t.circle(10, 360)
t.end_fill()
t.begin_fill()
t.fillcolor("red")
t.pu () # Возьмите ручку
t.goto (63, -10) # Исходное положение пера
t.pd () # Перо
t.setheading (-90) # Угол щетки
t.circle(10, 360)
t.end_fill()
# Рот
t.pensize(2.2)
t.pu () # Возьмите ручку
t.goto (0, 0) # Исходное положение пера
t.pd () # Перо
t.setheading (235) # Угол щетки
radian_right(5, 0.8, 0, 30)
t.pu () # Возьмите ручку
t.goto (0, 0) # Исходное положение пера
t.pd () # Перо
t.setheading (305) # Угол щетки
radian_left(5, 0.8, 0, 30)
# Раскрашенные руки
def InitHands():
# Левая рука
t.pensize(2)
t.pu () # Возьмите ручку
t.goto (-46, -100) # Исходное положение пера
t.pd () # Перо
t.setheading (285) # Угол щетки
radian_right(0.4, 1.2, 0, 26)
radian_right(5, 0.35, 0, 26)
radian_right(0.3, 1.2, 0, 15)
# Правая рука
t.pu () # Возьмите ручку
t.goto (46, -100) # Исходное положение пера
t.pd () # Перо
t.setheading (255) # Угол пера
radian_left(0.4, 1.2, 0, 26)
radian_left(5, 0.35, 0, 26)
radian_left(0.3, 1.2, 0, 15)
def CloseEyes():
# Левый глаз
t.pu () # Возьмите ручку
t.goto (-46, 12) # Исходное положение пера
t.pd () # Перо
t.setheading (180) # Угол пера
t.forward(10)
# Правый глаз
t.pu () # Возьмите ручку
t.goto (46, 12) # Исходное положение пера
t.pd () # Перо
t.setheading (0) # Угол пера
t.forward(10)
# Инициализация
def Init():
InitEars()
InitTail()
InitFoots()
InitBody()
InitFace()
InitHands()
InitEyes()
# Подмигивая
def Upgarde():
InitEars()
InitTail()
InitFoots()
InitBody()
InitFace()
InitHands()
CloseEyes()
def Upgarde_Init():
InitEars()
InitTail()
InitFoots()
InitBody()
InitFace()
InitHands()
InitEyes()
def main():
Init()
t.tracer(False)
# Анимация моргания глаз
for i in range(30):
if i % 2 == 0:
t.reset()
t.hideturtle()
Upgarde()
t.update()
time.sleep(0.3)
else:
t.reset()
t.hideturtle()
Upgarde_Init()
t.update()
time.sleep(1)
main()
# Конец кисти
t.done()
9. Часы
# -*- coding:utf-8 –*-
# Рисуем часы с помощью turtlr
# Реализуйте по индивидуальной форме
import turtle as t
import datetime as d
def skip (step): # Поднимите перо и прыгните на место
t.penup()
t.forward(step)
t.pendown()
def drawClock (radius): # draw dial
t.speed(0)
t.mode ("logo") # В виде координат и углов логотипа
t.hideturtle()
t.pensize(7)
t.home () # Вернуться к точке
for j in range(60):
skip(radius)
if (j % 5 == 0):
t.forward(20)
skip(-radius - 20)
else:
t.dot(5)
skip(-radius)
t.right(6)
def makePoint (pointName, len): # Стрелки часов, часовая стрелка, минутная стрелка, секундная стрелка
t.penup()
t.home()
t.begin_poly()
t.back(0.1 * len)
t.forward(len * 1.1)
t.end_poly()
poly = t.get_poly()
t.register_shape (pointName, poly) # Зарегистрировать как фигуру
def drawPoint (): # рисовать указатель
global hourPoint, minPoint, secPoint, fontWriter
makePoint("hourPoint", 100)
makePoint("minPoint", 120)
makePoint("secPoint", 140)
hourPoint = t.Pen () # Каждый указатель - это новая черепаха
hourPoint.shape("hourPoint")
hourPoint.shapesize(1, 1, 6)
minPoint = t.Pen()
minPoint.shape("minPoint")
minPoint.shapesize(1, 1, 4)
secPoint = t.Pen()
secPoint.shape("secPoint")
secPoint.pencolor('red')
fontWriter = t.Pen()
fontWriter.pencolor('gray')
fontWriter.hideturtle()
def getWeekName(weekday):
weekName = ['понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье']
return weekName[weekday]
def getDate(year, month, day):
return "%s-%s-%s" % (year, month, day)
def realTime():
curr = d.datetime.now()
curr_year = curr.year
curr_month = curr.month
curr_day = curr.day
curr_hour = curr.hour
curr_minute = curr.minute
curr_second = curr.second
curr_weekday = curr.weekday()
t.tracer(False)
secPoint.setheading(360 / 60 * curr_second)
minPoint.setheading(360 / 60 * curr_minute)
hourPoint.setheading(360 / 12 * curr_hour + 30 / 60 * curr_minute)
fontWriter.clear()
fontWriter.home()
fontWriter.penup()
fontWriter.forward(80)
# Напишите текст черепахой
fontWriter.write(getWeekName(curr_weekday), align="center", font=("Courier", 14, "bold"))
fontWriter.forward(-160)
fontWriter.write(getDate(curr_year, curr_month, curr_day), align="center", font=("Courier", 14, "bold"))
t.tracer(True)
print(curr_second)
t.ontimer (realTime, 100) # вызов realTime () каждые 100 миллисекунд
def main():
t.tracer(False)
drawClock(160)
drawPoint()
realTime()
t.tracer(True)
t.mainloop()
if __name__ == '__main__':
main()
10. Ханойская башня
import turtle
class Stack:
def __init__(self):
self.items = []
def isEmpty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
if not self.isEmpty():
return self.items[len(self.items) - 1]
def size(self):
return len(self.items)
def drawpole_3 (): # Нарисуйте столбы Ханойской башни
t = turtle.Turtle()
t.hideturtle()
def drawpole_1(k):
t.up()
t.pensize(10)
t.speed(100)
t.goto(400 * (k - 1), 100)
t.down()
t.goto(400 * (k - 1), -100)
t.goto(400 * (k - 1) - 20, -100)
t.goto(400 * (k - 1) + 20, -100)
drawpole_1 (0) # Нарисуйте столбы Ханойской башни [0]
drawpole_1 (1) # Нарисуйте столбы Ханойской башни [1]
drawpole_1 (2) # Нарисуйте столбы Ханойской башни [2]
def creat_plates (n): # делаем n пластин
plates = [turtle.Turtle() for i in range(n)]
for i in range(n):
plates[i].up()
plates[i].hideturtle()
plates[i].shape("square")
plates[i].shapesize(1, 8 - i)
plates[i].goto(-400, -90 + 20 * i)
plates[i].showturtle()
return plates
def pole_stack (): # Составляем стопку столбов
poles = [Stack() for i in range(3)]
return poles
def moveDisk (пластины, полюса, fp, tp): # Переместите пластины [mov] наверху полюсов [fp] от полюсов [fp] к полюсам [tp]
mov = poles[fp].peek()
plates[mov].goto((fp - 1) * 400, 150)
plates[mov].goto((tp - 1) * 400, 150)
l = poles [tp] .size () # Определяем высоту для перемещения вниз (только поверх исходной верхней пластины)
plates[mov].goto((tp - 1) * 400, -90 + 20 * l)
def moveTower (пластины, полюса, высота, fromPole, toPole, withPole): # рекурсивно помещаем пластины
if height >= 1:
moveTower(plates, poles, height - 1, fromPole, withPole, toPole)
moveDisk(plates, poles, fromPole, toPole)
poles[toPole].push(poles[fromPole].pop())
moveTower(plates, poles, height - 1, withPole, toPole, fromPole)
myscreen = turtle.Screen()
drawpole_3()
n = int (input ("Введите количество этажей Ханойской башни и нажмите Enter: \ n"))
plates = creat_plates(n)
poles = pole_stack()
for i in range(n):
poles[0].push(i)
moveTower(plates, poles, n, 0, 2, 1)
myscreen.exitonclick()
11. Гандам
import turtle
t=turtle.Turtle()
turtle.Turtle().screen.delay(0)
tleft=turtle.Turtle()
''' первая часть'''
t.penup()
t.goto(0,0)
t.pendown()
t.left(20)
t.forward(110)
t.left(25)
t.forward(40)
t.left(100)
t.circle(180,20)
t.right(120)
t.forward(250)
t.left(165)
t.forward(250)
t.right(100)
t.forward(35)
t.left(70)
t.forward(45)
t.left(70)
t.forward(120)
t.left(70)
t.forward(80)
t.left(80)
t.forward(80)
t.left(68)
t.forward(120)
t.left(180)
t.forward(78)
t.right(68)
t.forward(60)
t.right(75)
t.forward(60)
t.right(110)
t.forward(15)
t.left(38)
t.forward(65)
t.right (73) # Прямая сторона пятиугольника
t.forward(35)
t.right(70)
t.forward(65)
t.right(68)
t.forward(50)
t.right(80)
t.forward(50)
t.penup()
t.goto(-65,68)
t.pendown()
t.right(7)
t.forward(350)
t.right(165)
t.forward(330)
t.penup()
t.goto(64,65)
t.pendown()
t.left(75)
t.forward(350)
t.left(165)
t.forward(330)
t.penup()
t.goto(300,500)
'''Вторая часть'''
tleft.left(180)
tleft.right(20)
tleft.forward(110)
tleft.right(25)
tleft.forward(40)
tleft.right(100)
tleft.circle(-180,20)
tleft.left(120)
tleft.forward(250)
tleft.right(165)
tleft.forward(250)
tleft.left(100)
tleft.forward(35)
tleft.penup()
tleft.goto(0,0)
tleft.pendown()
tleft.left(20)
tleft.penup()
tleft.forward(18)
tleft.pendown()
tleft.forward (50) # Вертикальная линия лба
tleft.penup()
tleft.forward (110) # Убрать вертикальные линии
tleft.pendown()
tleft.left(90)
tleft.forward(30)
tleft.right(90)
tleft.forward(60)
tleft.right(90)
tleft.forward(60)
tleft.right(90)
tleft.forward(60)
tleft.right(90)
tleft.forward(40)
tleft.penup()
tleft.forward(30)
tleft.pendown()
tleft.left(90)
tleft.forward(30)
tleft.right(180)
tleft.forward(100)
tleft.right(90)
tleft.forward(80)
tleft.right(90)
tleft.forward(100)
tleft.penup()
tleft.goto(150,70)
tleft.pendown()
tleft.left(100)
tleft.forward(40)
tleft.right(80)
tleft.circle(-333,40)
tleft.right(160)
tleft.forward(230)
# Правая половина
tleft.left(100)
tleft.forward(40)
tleft.left(80)
tleft.forward(20)
tleft.left(100)
tleft.forward(30)
tleft.right(100)
tleft.forward(20)
tleft.right(80)
tleft.forward(30)
tleft.left(80)
tleft.forward(20)
tleft.left(100)
tleft.forward(30)
tleft.right(100)
tleft.forward(20)
tleft.right(80)
tleft.forward(30)
tleft.left(80)
tleft.forward(20)
tleft.left(100)
tleft.forward(30)
tleft.right(100)
tleft.forward(20)
tleft.right(80)
tleft.forward(30)
tleft.left(80)
tleft.forward(20)
tleft.left(100)
tleft.forward(30)
tleft.right(100)
tleft.forward(20)
tleft.right(80)
tleft.forward(30)
tleft.left(80)
tleft.forward(20)
tleft.left(100)
tleft.forward(30)
tleft.right(100)
tleft.forward(20)
tleft.right(80)
tleft.forward(30)
tleft.left(80)
tleft.forward(20)
tleft.left(100)
tleft.forward(30)
tleft.right(100)
tleft.forward(20)
tleft.right(80)
tleft.forward(30)
#Внизу справа
tleft.left(70)
tleft.forward(30)
tleft.right(110)
tleft.forward(40)
tleft.right(60)
tleft.forward(100)
tleft.right(30)
tleft.circle(200,20)
tleft.left(10)
tleft.forward(80)
# Нижняя правая часть goto
tleft.penup()
tleft.goto(145,-198)
tleft.pendown()
tleft.left(90)
tleft.forward(30)
tleft.right(30)
tleft.forward(40)
tleft.right(150)
tleft.forward(30)
tleft.backward(30)
tleft.left(90)
tleft.forward(100)
tleft.right(90)
tleft.forward(30)
tleft.backward(30)
tleft.left(90)
tleft.right(30)
tleft.circle(200,20)
tleft.left(10)
tleft.forward(50)
# Третья часть лица
t2=turtle.Turtle()
t2.penup()
t2.goto(0,-80)
#
t2.circle(150,extent=90)
t2.pendown()
t2.circle(150,extent=30)
t2.penup()
t2.circle(150,extent=18)
t2.pendown()
t2.circle(150,extent=27)
t2.penup()
t2.circle(150,extent=30)
t2.pendown()
t2.circle(150,extent=27)
t2.penup()
t2.circle(150,extent=18)
t2.pendown()
t2.circle(150,extent=30)
t2.right(100)
t2.forward(40)
#
t2.left(80)
t2.circle(333,40)
t2.left(160)
t2.forward(230)
# Левая половина
t2.right(100)
t2.forward(40)
t2.right(80)
t2.forward(20)
t2.right(100)
t2.forward(30)
t2.left(100)
t2.forward(20)
t2.left(80)
t2.forward(30)
t2.right(80)
t2.forward(20)
t2.right(100)
t2.forward(30)
t2.left(100)
t2.forward(20)
t2.left(80)
t2.forward(30)
t2.right(80)
t2.forward(20)
t2.right(100)
t2.forward(30)
t2.left(100)
t2.forward(20)
t2.left(80)
t2.forward(30)
t2.right(80)
t2.forward(20)
t2.right(100)
t2.forward(30)
t2.left(100)
t2.forward(20)
t2.left(80)
t2.forward(30)
t2.right(80)
t2.forward(20)
t2.right(100)
t2.forward(30)
t2.left(100)
t2.forward(20)
t2.left(80)
t2.forward(30)
t2.right(80)
t2.forward(20)
t2.right(100)
t2.forward(30)
t2.left(100)
t2.forward(20)
t2.left(80)
t2.forward(30)
t2.right(70)
t2.forward(30)
t2.left(110)
t2.forward(40)
t2.left(60)
t2.forward(100)
t2.left(30)
t2.circle(-200,20)
t2.right(10)
t2.forward(80)
t2.penup()
t2.goto (-145, -198) # Левая щека
t2.pendown()
t2.right(90)
t2.forward(30)
t2.left(30)
t2.forward(40)
t2.left(150)
t2.forward(30)
t2.right(180)
t2.forward(30)
t2.left(90)
t2.forward(100)
t2.left(90)
t2.forward(30)
t2.left(180)
t2.forward(30)
t2.left(120)
t2.circle(-200,20)
t2.right(10)
t2.forward(50)
#
t2.right(135)
t2.forward(70)
t2.left(50)
t2.forward(40)
t2.left(20)
t2.forward(20)
t2.penup()
t2.goto(-100,28)
t2.pendown()
t2.right(70)
t2.forward(65)
t2.left(50)
t2.forward(40)
t2.left(40)
t2.forward(20)
#
t2.penup()
t2.goto(-105,-10)
t2.pendown()
t2.right(100)
t2.circle(120,extent=20)
t2.circle(60,extent=80)
t2.penup()
t2.goto(-105,-13)
t2.pendown()
t2.right(100)
t2.circle(120,extent=20)
t2.circle(60,extent=80)
t2.penup()
t2.goto(-70,-40)
t2.pendown()
t2.left(10)
t2.forward(30)
t2.penup()
t2.goto(-10,-40)
t2.pendown()
t2.left(35)
t2.forward(30)
t2.penup()
t2.goto(-80,30)
t2.pendown()
t2.right(130)
t2.forward(47)
t2.left(50)
t2.forward(35)
t2.penup()
t2.goto(-60,-45)
t2.pendown()
t2.right(98)
t2.forward(60)
t2.left(20)
t2.forward(80)
t2.left(70)
t2.forward(10)
t2.left(90)
t2.forward(50)
t2.right(60)
t2.forward(30)
t2.right(60)
t2.forward(30)
t2.right(60)
t2.forward(50)
t2.left(90)
t2.forward(10)
t2.left(75)
t2.forward(80)
t2.left(15)
t2.forward(60)
t2.penup()
t2.goto(-80,-140)
t2.pendown()
t2.right(150)
t2.circle(85,extent=45)
t2.left(15)
t2.forward(70)
t2.left(15)
t2.circle(55,extent=55)
t2.penup()
t2.goto(0,-175)
t2.pendown()
t2.left(18)
t2.forward(170)
#
tleft.left(135)
tleft.forward(70)
tleft.right(50)
tleft.forward(40)
tleft.right(20)
tleft.forward(20)
tleft.penup()
tleft.goto(100,28)
tleft.pendown()
tleft.left(70)
tleft.forward(65)
tleft.right(50)
tleft.forward(40)
tleft.right(40)
tleft.forward(20)
#
tleft.penup()
tleft.goto(105,-10)
tleft.pendown()
tleft.left(100)
tleft.circle(-120,extent=20)
tleft.circle(-60,extent=80)
tleft.penup()
tleft.goto(105,-13)
tleft.pendown()
tleft.left(100)
tleft.circle(-120,extent=20)
tleft.circle(-60,extent=80)
# Правые глаза
tleft.penup()
tleft.goto(70,-40)
tleft.pendown()
tleft.right(10)
tleft.forward(30)
tleft.penup()
tleft.goto(10,-40)
tleft.pendown()
tleft.right(35)
tleft.forward(30)
tleft.penup()
tleft.goto(80,30)
tleft.pendown()
tleft.left(130)
tleft.forward(47)
tleft.right(50)
tleft.forward(35)
'''Нос'''
tleft.penup()
tleft.goto(0,-70)
tleft.pendown()
tleft.left(30)
tleft.forward(20)
tleft.left(72)
tleft.forward(10)
tleft.left(108)
tleft.forward(20)
tleft.right(42)
tleft.forward(20)
tleft.left(108)
tleft.forward(10)
tleft.left(72)
tleft.forward(20)
tleft.penup()
tleft.goto(0,-90)
tleft.pendown()
tleft.left(42)
tleft.forward(20)
tleft.left(72)
tleft.forward(10)
tleft.left(108)
tleft.forward(20)
tleft.right(42)
tleft.forward(20)
tleft.left(108)
tleft.forward(10)
tleft.left(72)
tleft.forward(20)
tleft.penup()
tleft.goto(200,500)
turtle.done()
13. Звездное небо
from turtle import *
from random import random,randint
screen = Screen()
width ,height = 800,600
screen.setup(width,height)
screen.bgcolor("black")
screen.mode("logo")
screen.delay (0) # Здесь надо выставить 0, иначе сильно зависнет
t = Turtle(visible = False,shape='circle')
t.pencolor("white")
t.fillcolor("white")
t.penup()
t.setheading(-90)
t.goto(width/2,randint(-height/2,height/2))
stars = []
for i in range(200):
star = t.clone()
s =random() /3
star.shapesize(s,s)
star.speed(int(s*10))
star.setx(width/2 + randint(1,width))
star.sety( randint(-height/2,height/2))
star.showturtle()
stars.append(star)
while True:
for star in stars:
star.setx(star.xcor() - 3 * star.speed())
if star.xcor()<-width/2:
star.hideturtle()
star.setx(width/2 + randint(1,width))
star.sety( randint(-height/2,height/2))
star.showturtle()
14. Голова льва
import turtle as t
def hair (): # рисовать волосы
t.penup()
t.goto(-50, 150)
t.pendown()
t.begin_fill()
for j in range (10): # Повторить 10 раз
t.setheading (60- (j * 36)) # каждый раз настраивать начальный угол
t.circle (-50, 120) # рисуем дугу в 120 градусов
t.end_fill()
def face (): # рисовать лицо
t.penup()
t.goto(0, 100)
t.pendown()
t.begin_fill()
t.setheading(180)
t.circle(85)
t.end_fill()
# Подбородок
t.circle(85, 120)
t.fillcolor('white')
t.begin_fill()
t.circle(85, 120)
t.setheading(135)
t.circle(100, 95)
t.end_fill()
def уши (dir): # рисовать глаза, dir используется для задания направления, левый и правый глаза симметричны
t.penup()
t.goto((0 - dir) * 30, 90)
t.setheading(90)
t.pendown()
t.begin_fill()
t.circle(dir * 30)
t.end_fill()
t.penup()
t.goto((0 - dir) * 40, 85)
t.setheading(90)
t.pendown()
t.fillcolor('white')
t.begin_fill()
t.circle(dir * 17)
t.end_fill()
def нос (): # рисуем нос
t.penup()
t.goto(20, 0)
t.setheading(90)
t.pendown()
t.fillcolor('#a2774d')
t.begin_fill()
t.circle(20)
t.end_fill()
def eye (dir): # рисовать уши, dir используется для задания направления, левое и правое уши симметричны
t.penup()
t.goto((0 - dir) * 30, 20)
t.setheading(0)
t.pendown()
t.fillcolor('black')
t.begin_fill()
t.circle(10)
t.end_fill()
def Mouth (): # Нарисуйте рот
t.penup()
t.goto(0, 0)
t.setheading(-90)
t.pendown()
t.forward(50)
t.setheading(0)
t.circle(80, 30)
t.penup()
t.goto(0, -50)
t.setheading(180)
t.pendown()
t.circle(-80, 30)
hair()
ears(1)
ears(-1)
face()
eye(1)
eye(-1)
mouth()
nose()
t.done()
16. Я слишком жесткий
import turtle
# Рисуем указанную произвольную дугу
def arc(sa, ea, x, y, r): # start angle,end angle,circle center,radius
turtle.penup()
turtle.goto(x, y)
turtle.setheading(0)
turtle.left(sa)
turtle.fd(r)
turtle.pendown()
turtle.left(90)
turtle.circle(r, (ea - sa))
return turtle.position()
turtle.hideturtle()
# Рисуем лицо
turtle.speed(5)
turtle.setup(900, 600, 200, 200)
turtle.pensize(5)
turtle.right(90)
turtle.penup()
turtle.fd(100)
turtle.left(90)
turtle.pendown()
turtle.begin_fill()
turtle.circle(150)
turtle.end_fill()
#
turtle.penup()
turtle.goto(77, 20)
turtle.goto(0, 50)
turtle.right(30)
turtle.fd(110)
turtle.right(90)
turtle.pendown()
turtle.begin_fill()
turtle.circle(-97, 160)
turtle.goto(92, -3)
turtle.end_fill()
turtle.penup()
turtle.goto(77, -25)
# Рисуем зубы
turtle.pencolor("white")
turtle.begin_fill()
turtle.fillcolor("white")
turtle.goto(77, -24)
turtle.goto(-81, 29)
turtle.goto(-70, 43)
turtle.goto(77, -8)
turtle.end_fill()
turtle.penup()
turtle.goto(0, -100)
turtle.setheading(0)
turtle.pendown()
# Нарисуйте слезы слева
turtle.left(90)
turtle.penup()
turtle.fd(150)
turtle.right(60)
turtle.fd(-150)
turtle.pendown()
turtle.left(20)
turtle.fd(150)
turtle.right(180)
position1 = turtle.position()
turtle.begin_fill()
turtle.fd(150)
turtle.right(20)
turtle.left(270)
turtle.circle(-150, 18)
turtle.right(52)
turtle.fd(110)
position2 = turtle.position()
turtle.goto(-33, 90)
turtle.end_fill()
# Рисуем слезы справа
turtle.penup()
turtle.goto(0, 0)
turtle.setheading(0)
turtle.left(90)
turtle.fd(50)
turtle.right(150)
turtle.fd(150)
turtle.left(150)
turtle.fd(100)
turtle.pendown()
turtle.begin_fill()
turtle.fd(-100)
turtle.fillcolor("#7EB0C8") # tear color
turtle.right(60)
turtle.circle(150, 15)
turtle.left(45)
turtle.fd(66)
turtle.goto(77, 20)
turtle.end_fill()
# Рисуем глаза
turtle.penup()
turtle.pencolor("#6C4E00") # eye color
turtle.goto(-65, 75)
turtle.setheading(0)
turtle.left(27)
turtle.fd(38)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor("#6C4E00") # eye color
turtle.left(90)
turtle.circle(38, 86)
turtle.goto(position2[0], position2[1])
turtle.goto(position1[0], position1[1])
turtle.end_fill()
# Раскрашенные руки
turtle.pencolor("#D57E18") # hand side color
turtle.begin_fill()
turtle.fillcolor("red") # hand color
# Первый палец
arc(-110, 10, 110, -40, 30)
turtle.circle(300, 35)
turtle.circle(13, 120)
turtle.setheading(-50)
turtle.fd(20)
turtle.setheading(130)
# Второй палец
turtle.circle(200, 15)
turtle.circle(12, 180)
turtle.fd(40)
turtle.setheading(137)
# Третий палец
turtle.circle(200, 16)
turtle.circle(12, 160)
turtle.setheading(-35)
turtle.fd(45)
turtle.setheading(140)
# Четвертый палец
turtle.circle(200, 13)
turtle.circle(11, 160)
turtle.setheading(-35)
turtle.fd(40)
turtle.setheading(145)
# Пятый палец
turtle.circle(200, 9)
turtle.circle(10, 180)
turtle.setheading(-31)
turtle.fd(50)
# Нарисуйте последнюю часть запястья
turtle.setheading(-45)
turtle.pensize(7)
turtle.right(5)
turtle.circle(180, 35)
turtle.end_fill()
turtle.begin_fill()
turtle.setheading(-77)
turtle.pensize(5)
turtle.fd(50)
turtle.left(-270)
turtle.fd(7)
turtle.circle(30, 180)
turtle.end_fill()
# Контрольная работа
# res=arc(70,220,90,50,300)
# print(res[0],res[1])
turtle.done()
17. Если бы ты вернулся, любил бы ты меня?
import turtle as t
# t = turtle.Pen()
t.bgcolor("black")
side = eval (input («Введите количество сторон, которые нужно нарисовать, введите число от 2 до 6!»))
colors=["red","yellow","green","blue","orange","purple"]
for x in range(150):
t.pencolor(colors[x%sides])
t.forward(x*3/sides+x)
t.left(360/sides+1)
t.width(x*sides/200)
t.exitonclick()
print ("End ")
18. Время цифровой трубки
import turtle as t
import datetime
def drawGap (): # Нарисовать интервал цифровой трубки
t.penup()
t.fd(5)
def drawLine (draw): # Нарисуйте односегментную цифровую трубку
drawGap()
t.pendown() if draw else t.penup()
t.fd(40)
drawGap()
t.right(90)
def drawDigit (d): # Нарисуйте семисегментную цифровую трубку по номеру
drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,2,6,8] else drawLine(False)
t.left(90)
drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False)
t.left(180)
t.penup()
t.fd(20)
def drawDate(date):
t.pencolor("red")
for i in date:
if i == '-':
t.write ('год', font = ("Arial", 18, "normal"))
t.pencolor("green")
t.fd(40)
elif i == '=':
t.write (' ', font = ("Arial", 18, "normal"))
t.pencolor("blue")
t.fd(40)
elif i == '+':
t.write (' ', font = ("Arial", 18, "normal"))
else:
drawDigit(eval(i))
def main():
t.setup(800, 350, 200, 200)
t.penup()
t.fd(-350)
t.pensize(5)
drawDate(datetime.datetime.now().strftime('%Y-%m=%d+'))
t.hideturtle()
t.exitonclick()
main()
20. Вечно текущий Бог
from turtle import *
import turtle as t
t.screensize(500, 500)
# 【Профиль головы】
t.pensize(5)
t.home()
t.seth(0)
t.pd()
t.color('black')
t.circle(20, 80) # 0
t.circle(200, 30) # 1
t.circle(30, 60) # 2
t.circle(200, 29.5) # 3
t.color('black')
t.circle(20, 60) # 4
t.circle(-150, 22) # 5
t.circle(-50, 10) # 6
t.circle(50, 70) # 7
# Определить примерное положение носа
x_nose = t.xcor()
y_nose = t.ycor()
t.circle(30, 62) # 8
t.circle(200, 15) # 9
# 【Нос】
t.pu()
t.goto(x_nose, y_nose + 25)
t.seth(90)
t.pd()
t.begin_fill()
t.circle(8)
t.end_fill()
# 【Глаза】
t.pu()
t.goto(x_nose + 48, y_nose + 55)
t.seth(90)
t.pd()
t.begin_fill()
t.circle(8)
t.end_fill()
# 【Уши】
t.pu()
t.color('#444444')
t.goto(x_nose + 100, y_nose + 110)
t.seth(182)
t.pd()
t.circle(15, 45) # 1
t.color('black')
t.circle(10, 15) # 2
t.circle(90, 70) # 3
t.circle(25, 110) # 4
t.rt(4)
t.circle(90, 70) # 5
t.circle(10, 15) # 6
t.color('#444444')
t.circle(15, 45) # 7
# 【Тело】
t.pu()
t.color('black')
t.goto(x_nose + 90, y_nose - 30)
t.seth(-130)
t.pd()
t.circle(250, 28) # 1
t.circle(10, 140) # 2
t.circle(-250, 25) # 3
t.circle(-200, 25) # 4
t.circle(-50, 85) # 5
t.circle(8, 145) # 6
t.circle(90, 45) # 7
t.circle(550, 5) # 8
# [Хвост]
t.seth(0)
t.circle(60, 85) # 1
t.circle(40, 65) # 2
t.circle(40, 60) # 3
t.lt(150)
t.circle(-40, 90) # 4
t.circle(-25, 100) # 5
t.lt(5)
t.fd(20)
t.circle(10, 60) # 6
# 【Назад】
t.rt(80)
t.circle(200, 35)
# [Ошейники]
t.pensize(20)
t.color('#F03C3F')
t.lt(10)
t.circle(-200, 25) # 5
# 【Колокол любви】
t.pu()
t.fd(18)
t.lt(90)
t.fd(18)
t.pensize(6)
t.seth(35)
t.color('#FDAF17')
t.begin_fill()
t.lt(135)
t.fd(6)
t.right (180) # Щетка, разворот
t.circle(6, -180)
t.backward(8)
t.right(90)
t.forward(6)
t.circle(-6, 180)
t.fd(15)
t.end_fill()
# [Передняя голень]
t.pensize(5)
t.pu()
t.color('black')
t.goto(x_nose + 100, y_nose - 125)
t.pd()
t.seth(-50)
t.fd(25)
t.circle(10, 150)
t.fd(25)
# 【Услышь теленка】
t.pensize(4)
t.pu()
t.goto(x_nose + 314, y_nose - 125)
t.pd()
t.seth(-95)
t.fd(25)
t.circle(-5, 150)
t.fd(2)
t.hideturtle()
t.done()
21. Я Я
import turtle as t
from time import sleep
def go_to(x, y):
t.up()
t.goto(x, y)
t.down()
def head(x, y, r):
go_to(x, y)
t.speed(20)
t.circle(r)
leg(x, y)
def leg(x, y):
t.right(90)
t.forward(180)
t.right(30)
t.forward(100)
t.left(120)
go_to(x, y - 180)
t.forward(100)
t.right(120)
t.forward(100)
t.left(120)
hand(x, y)
def hand(x, y):
go_to(x, y - 60)
t.forward(100)
t.left(60)
t.forward(100)
go_to(x, y - 90)
t.right(60)
t.forward(100)
t.right(60)
t.forward(100)
t.left(60)
eye(x, y)
def eye(x, y):
go_to(x - 50, y + 130)
t.right(90)
t.forward(50)
go_to(x + 40, y + 130)
t.forward(50)
t.left(90)
def big_Circle(size):
t.speed(20)
for i in range(150):
t.forward(size)
t.right(0.3)
def line(size):
t.speed(20)
t.forward(51 * size)
def small_Circle(size):
t.speed(20)
for i in range(210):
t.forward(size)
t.right(0.786)
def heart(x, y, size):
go_to(x, y)
t.left(150)
t.begin_fill()
line(size)
big_Circle(size)
small_Circle(size)
t.left(120)
small_Circle(size)
big_Circle(size)
line(size)
t.end_fill()
def main():
t.pensize(2)
t.color('red', 'pink')
head(-120, 100, 100)
heart(250, -80, 1)
go_to(100, -300)
t.write ("Кому: Мудрость и красота сосуществуют", move = True, align = "left", font = ("kaisei", 20, "normal"))
t.done()
main()
22. Панда
import turtle as t
t.title ("Малышка Панда")
t.shape("classic")
t.pensize(3)
t.color("black")
t.fillcolor("black")
t.speed(100)
t.hideturtle()
#
t.penup()
t.goto(-105,97)
t.setheading(160)
t.begin_fill()
t.pendown()
t.circle(-30,230)
t.setheading(180)
t.circle(37,90)
t.end_fill()
#
t.penup()
t.goto(105,97)
t.setheading(20)
t.begin_fill()
t.pendown()
t.circle(30,230)
t.setheading(0)
t.circle(-37,90)
t.end_fill()
# Силуэт головы
t.penup()
t.goto(-67,140)
t.setheading(30)
t.pendown()
t.circle(-134,60)
t.penup()
t.goto(-50,-25)
t.setheading(180)
t.pendown()
t.circle(-100,30)
t.circle(-30,90)
t.setheading(100)
t.circle(-200,20)
t.penup()
t.goto(50,-25)
t.setheading(0)
t.pendown()
t.circle(100,30)
t.circle(30,90)
t.setheading(80)
t.circle(200,20)
# Два глаза панды
#
t.penup()
t.goto(-90,25)
t.setheading(-45)
t.begin_fill()
t.pendown()
# Навыки рисования эллипсов
a = 0.2
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.1
t.lt (3) # Повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
else:
a=a-0.1
t.lt(3)
t.fd(a)
t.end_fill()
t.fillcolor("white")
t.penup()
t.goto(-53,43)
t.setheading(0)
t.begin_fill()
t.pendown()
t.circle(13,360)
t.end_fill()
t.penup()
t.pensize(4)
t.goto(-60,57)
t.setheading(30)
t.pendown()
t.circle(-12,60)
#
t.penup()
t.goto(90,25)
t.setheading(45)
t.pensize(2)
t.fillcolor("black")
t.begin_fill()
t.pendown()
# Навыки рисования эллипсов
a = 0.2
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.1
t.lt (3) # Повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
else:
a=a-0.1
t.lt(3)
t.fd(a)
t.end_fill()
t.fillcolor("white")
t.penup()
t.goto(53,43)
t.setheading(0)
t.begin_fill()
t.pendown()
t.circle(13,360)
t.end_fill()
t.penup()
t.pensize(4)
t.goto(60,57)
t.setheading(150)
t.pendown()
t.circle(12,60)
# Нос и рот
t.penup()
t.goto(-16,20)
t.setheading(-90)
t.fillcolor("black")
t.begin_fill()
t.pendown()
a = 0.2
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.03
t.lt(3)
t.fd(a)
else:
a = a - 0.03
t.lt(3)
t.fd(a)
t.end_fill()
t.penup()
t.goto(-24,0)
t.setheading(-60)
t.pendown()
t.circle(28,120)
# Медвежья конечность
# Левая конечность
t.penup()
t.goto(-65,-24)
t.setheading(-140)
t.begin_fill()
t.pendown()
t.circle(100,40)
t.setheading(180)
t.circle(30,40)
t.setheading(-40)
t.circle(40,40)
t.setheading(-150)
a = 0.5
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.05
t.lt (3) # Повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
elif 30 <= i < 60 or 90<=i <100:
a=a-0.05
t.lt(3)
t.fd(a)
t.setheading(93)
t.circle(-150,30)
t.end_fill()
t.penup()
t.goto(-85,-115)
t.setheading(-150)
t.color("gray","gray")
t.begin_fill()
t.pendown()
a = 0.3
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.03
t.lt (3) # Повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
else:
a=a-0.03
t.lt(3)
t.fd(a)
t.end_fill()
# Функция рисования каждого пальца
def toe(x,y):
t.begin_fill()
t.goto(x,y)
t.circle(3,360)
t.end_fill()
t.penup()
toe(-98,-120)
toe(-96,-110)
toe(-88,-105)
toe(-80,-105)
# Правая конечность
t.color("black")
t.penup()
t.goto(65,-24)
t.setheading(-40)
t.begin_fill()
t.pendown()
t.circle(-100,40)
t.setheading(0)
t.circle(-30,40)
t.setheading(-140)
t.circle(-40,40)
t.setheading(-30)
a = 0.5
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.05
t.rt (3) # Повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
elif 30 <= i < 60 or 90<=i <100:
a=a-0.05
t.rt(3)
t.fd(a)
t.setheading(87)
t.circle(150,30)
t.end_fill()
t.penup()
t.goto(85,-115)
t.setheading(150)
t.color("gray","gray")
t.begin_fill()
t.pendown()
a = 0.3
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.03
t.lt (3) # Повернуть налево на 3 градуса
t.fd (a) # Длина шага форварда
else:
a=a-0.03
t.lt(3)
t.fd(a)
t.end_fill()
t.penup()
toe(98,-120)
toe(96,-110)
toe(88,-105)
toe(80,-105)
t.goto(-57,-140)
t.color("black")
t.setheading(-20)
t.pendown()
t.circle(165,40)
t.penup()
t.goto(0,180)
t.write("Zuo baby is the most lovely girl", align = "center"
, font = ("Times", 18, "bold"))
t.done()
23. Маленькая любовь к женским билетам
import turtle
import time
Name=['Z','J','H']
def draw_circle():
for i in range (200):
turtle.right(1)
turtle.forward(1)
def draw_love():
turtle.color('red','pink')
turtle.pensize(2)
turtle.speed(10)
turtle.goto(0,0)
turtle.begin_fill()
turtle.left(140)
turtle.forward(112)
draw_circle()
turtle.left(120)
draw_circle()
turtle.forward(112)
turtle.end_fill()
def draw_name():
turtle.pensize(50)
turtle.up()
turtle.goto(-50,142.7)
turtle.goto(100,-10)
turtle.write("I Love you")
turtle.done()
draw_love()
draw_name()
turtle.exitonclick()
25. Стрела Купидона
from turtle import*
import turtle
turtle.setup(750,500)
turtle.penup()
turtle.pensize(25)
turtle.pencolor("pink")
turtle.fd(-230)
turtle.seth(90)
turtle.pendown()
turtle.circle(-50,180)
turtle.circle(50,-180)
turtle.circle(75,-50)
turtle.circle(-190,-45)
turtle.penup()
turtle.fd(185)
turtle.seth(180)
turtle.fd(120)
turtle.seth(90)
turtle.pendown()
turtle.circle(-75,-50)
turtle.circle(190,-45)
turtle.penup()
turtle.fd(184)
turtle.seth(0)
turtle.fd(80)
turtle.seth(90)
turtle.pendown()
turtle.circle(-50,180)
turtle.circle(50,-180)
turtle.circle(75,-50)
turtle.circle(-190,-45)
turtle.penup()
turtle.fd(185)
turtle.seth(180)
turtle.fd(120)
turtle.seth(90)
turtle.pendown()
turtle.circle(-75,-50)
turtle.circle(190,-45)
turtle.penup()
turtle.fd(150)
turtle.seth(180)
turtle.fd(300)
turtle.pencolor("red")
turtle.pensize(10)
turtle.pendown()
turtle.fd(-500)
turtle.seth(90)
turtle.fd(30)
turtle.fd(-60)
turtle.seth(30)
turtle.fd(60)
turtle.seth(150)
turtle.fd(60)
turtle.done()
27. Снежинки
# -*- coding: utf-8 -*-
from turtle import *
import turtle as T
from random import *
def ground():
T.hideturtle()
T.speed(100)
for i in range(400):
T.pensize(randint(5,10))
x=randint(-400,350)
y=randint(-280,-1)
r=-y/280
g=-y/280
b=-y/280
T.pencolor(r,g,b)
T.penup()
T.goto(x,y)
T.pendown()
T.forward(randint(40,100))
def snow():
T.hideturtle()
T.speed(100)
T.pensize(2)
for i in range(100):
r=random()
g=random()
b=random()
T.pencolor(r,g,b)
T.penup()
T.setx(randint(-350,350))
T.sety(randint(1,270))
T.pendown()
dens=randint(8,12)
snowsize=randint(10,14)
for j in range(dens):
T.forward(snowsize)
T.backward(snowsize)
T.right(360/dens)
def main():
T.setup(800, 600, 0, 0)
T.tracer(False)
T.bgcolor("black")
snow()
ground()
T.tracer(True)
T.mainloop()
main()
29. Пятизвездочный красный флаг.
import turtle
import math
turtle.pensize(1)
turtle.up()
turtle.left(90)
turtle.forward(200)
turtle.left(90)
turtle.forward(300)
turtle.down()
turtle.color("red")
turtle.begin_fill()
for i in range(2):
turtle.left(90)
turtle.forward(400)
turtle.left(90)
turtle.forward(600)
turtle.end_fill()
turtle.up()
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(60)
turtle.down()
# Большая пятиконечная звезда
turtle.color("yellow")
turtle.right(162)
def paint1():
turtle.begin_fill()
l = (60 * math.cos(math.radians(18))) / (1 + math.sin(math.radians(18)))
for i in range(5):
turtle.forward(l)
turtle.left(72)
turtle.forward(l)
turtle.right(144)
turtle.end_fill()
paint1()
# Нарисуйте пятиконечную звезду
def paint2():
turtle.right(162)
turtle.begin_fill()
l = (20 * math.cos(math.radians(18))) / (1 + math.sin(math.radians(18)))
for i in range(5):
turtle.forward(l)
turtle.left(72)
turtle.forward(l)
turtle.right(144)
turtle.end_fill()
def paint3():
turtle.right(72)
turtle.begin_fill()
l = (20 * math.cos(math.radians(18))) / (1 + math.sin(math.radians(18)))
for i in range(5):
turtle.forward(l)
turtle.left(72)
turtle.forward(l)
turtle.right(144)
turtle.end_fill()
def paint4():
turtle.left(18)
turtle.begin_fill()
l = (20 * math.cos(math.radians(18))) / (1 + math.sin(math.radians(18)))
for i in range(5):
turtle.forward(l)
turtle.left(72)
turtle.forward(l)
turtle.right(144)
turtle.end_fill()
# comment Первая маленькая пятиконечная звезда
turtle.up()
turtle.left(72)
turtle.forward(120)
turtle.down()
paint2()
# Вторая маленькая пятиконечная звезда
turtle.up()
turtle.left(162)
turtle.forward(20)
turtle.right(90)
turtle.forward(40)
turtle.right(math.degrees(math.atan(1 / 7)))
turtle.forward(20)
turtle.down()
paint2()
# Третья маленькая пятиконечная звезда
turtle.up()
turtle.left(180 - math.degrees(math.atan(1 / 7)))
turtle.forward(20)
turtle.left(90)
turtle.forward(20 * (1 / 7))
turtle.down()
paint3()
# Четвертая малая пятиконечная звезда
turtle.up()
turtle.right(18)
turtle.forward(60)
turtle.right(90)
turtle.forward(20)
turtle.down()
paint4()
turtle.color("red")