Академия Eduson

Модуль «turtle». Часть 2

 Модуль черепашки. Часть 2

 Команды:

  • turtle.penup() — поднимает перо;
  • turtle.pendown() — опускает;
  • turtle.circle() — рисует круг заданного в виде аргумента в пикселях радиуса;
  • turtle.dot() — нарисовать точку;
  • turtle.pensize() — изменение ширины пера черепашки в пикселях;
  • turtle.pencolor() — изменение цвета рисунка;
  • turtle.Screen().bgcolor() — изменение фонового цвета;
  • turtle.Screen().bgpic() — установить фоновое изображение;
  • turtle.stamp() — оставить штамп черепашки;
  • turtle.clear() — стирает все рисунки в графическом окне. Но не меняет положение черепашки, цвет рисунка и цвет фона графического окна;
  • turtle.reset() — стирает все рисунки, имеющиеся в графическом окне, задает черный цвет рисунка и возвращает черепашку в исходное положение в центре экрана. Эта команда не переустанавливает цвет фона графического окна;
  • turtle.clearscreen() — стирает все рисунки в графическом окне, меняет цвет рисунка на черный, а цвет фона на белый, и возвращает черепашку в исходное положение в центре графического окна;
  • turtle.Screen().setup() — установление размера графического окна. Аргументы команды – ширина и высота (в пикселях)
  • turtle.goto() —  перемещение черепашки в конкретную позицию в графическом окне;
  • turtle.setposition() и turtle.setpos() —  аналогичны команде turtle.goto();
  • turtle.pos() —  возвращает кортеж с x и y координатами черепашки;
  • turtle.xcor() —  получение только координаты x черепашки;
  • turtle.ycor() —  получение координаты y ;
  • turtle.position() —  аналогична команде turtle.pos();
  • turtle.hideturtle() —  сокрытие черепашки;
  • turtle.speed()  — изменения скорости движения черепашки

 Напишите программу, которая рисует пунктирную линию.

import turtle

n = int(input())

turtle.penup()
turtle.backward(200)

for _ in range(n):
  turtle.forward(50)
  turtle.dot(30)

 Напишите программу, которая рисует прямоугольник с точкой в каждом углу.

import turtle

for _ in range(2):
  for side in (150, 75):
   turtle.dot(10)
   turtle.forward(side)
   turtle.left(90)

 Напишите программу для рисования паутины в соответствии с примером. Программа должна считывать количество лучей паутины, число n. Угол заданный каждой парой лучей составляет 360/n градусов.

from turtle import *

n = int(input())
x = 360 / n
d = 150

dot(22)
pensize(2)
shape('triangle')

for _ in range(n):
  forward(d)
  stamp()
  backward(d)
  left(x)

 Напишите программу, которая рисует черепашек в соответствии с образцом.

import turtle

def turtls(n):
    turtle.shape('turtle')
    turtle.dot(15)
    turtle.penup()
    for _ in range(10):
        turtle.forward(100)
        turtle.stamp()
        turtle.backward(100)
        turtle.left(360/n)

turtls(10)

 Напишите программу, которая рисует циферблат часов в соответствии с образцом.

import turtle as t
t.Screen().bgcolor('LightBlue')
t.shape('turtle')
t.stamp()
t.pensize(3)

for _ in range(12):
  t.penup()
  t.forward(70)
  t.pendown()
  t.forward(15)
  t.penup()
  t.forward(15)
  t.stamp()
  t.backward(100)
  t.left(30)

 Напишите программу, которая рисует черепашью спираль в соответствии с образцом.

from turtle import *

shape('turtle')
Screen().bgcolor('light green')
for i in range(1, 45):
    stamp()
    penup()
    forward(i)
    pendown()
    right(20)

 Напишите программу, которая рисует узор в соответствии с образцом.</p

import turtle

colors=['red', 'blue', 'yellow', 'green', 'purple', 'orange']
s=1
n=5
for i in range(8):
  for j in colors:
    turtle.pensize(s)
    turtle.pencolor(j)
    turtle.forward(n)
    turtle.left(45)
    n+=3
  s+=2

 Какая из приведенных команд задаст более быструю анимацию?

 Ответ:  turtle.speed(10)

 Напишите программу, которая рисует звезду, показанную на рисунке. Такую звезду можно создать из двух треугольников. Однако их невозможно нарисовать непрерывной линией, поэтому перо нужно будет поднять для перехода ко второму треугольнику.

import turtle as t

for i in range(3):
  t.forward(100)
  t.left(120)

t.penup()
t.goto(0,60)
t.pendown()

for i in range(3):
  t.forward(100)
  t.right(120)

 Напишите программу, которая рисует изображение в соответствии с образцом.

import turtle as t

t.pencolor('lightgreen')

for i in range(10):
  t.pendown()
  t.goto(135-i*30,-150)
  t.dot(8,'blue')
  t.penup()
  t.goto(0,0)

t.dot(8,'orange')

 Напишите программу, которая рисует изображение символа олимпиады.

from turtle import *

x = -200
y = 50
c = (0, 3, 2, 4, 1) # порядок вывода
col = ('blue', 'yellow', 'black', 'green', 'red')

for i in c:
    penup()
    goto(x + (i + 1) * 60, y - i % 2 * 60)
    pendown()
    color(col[i])
    pensize(6)
    circle(57)

 Напишите программу, которая рисует изображение мишки.

from turtle import *

circle(12)
goto(0, -70)
penup()
goto(0, -100)
pendown()
circle(70)
circle(120)
s = [[-70, 30], [70, 30]]
penup()

for i in s:
  goto(i[0], i[1])
  dot(20)

s1 = [[-100, 100], [100, 100]]

for i in s1:
  goto(i[0], i[1])
  pendown()
  circle(35)
  penup()

 Напишите программу, которая случайным образом рисует снежинки разного цвета и размера.

import turtle

def snow(x, y, color, size):
    turtle.penup()
    turtle.goto(x, y)
    turtle.pencolor(color)
    turtle.pendown()
    turtle.dot()

    for i in range(45, 361, 45):
        for j in range(3):
            turtle.forward(25 * size)
            for k in [45, 315]:
                turtle.right(k)
                turtle.forward(25 * size)
                turtle.backward(25 * size)
                turtle.left(k)
        turtle.forward(25 * size)
        turtle.backward(100 * size)
        turtle.right(i)

turtle.speed(0)
turtle.Screen().bgcolor('cyan')
turtle.pensize(2)

snow(0, 0, 'maroon1', 0.5)
snow(200, 200, 'DarkSeaGreen', 1)
snow(200, -200, 'purple', 1)
snow(-200, -200, 'blue', 0.75)
snow(-200, 200, 'DarkOrchid', 0.25)