Модуль черепашка python команды

Модуль черепашка python команды

Библиотека turtle – это расширения языка Питон, позволяющее рисовать на экране несложные рисунки. Представьте себе, что по экрану компьютера ползает маленькая черепашка (turtle) . Вы можете управлять движением черепашки, отдавая ей различные команды вида «Проползти вперед на 10 пикселей», «Повернуть направо», «Повернуть налево». После того, как вы отдадите ей команду «Начать рисовать», черепашка будет оставлять за собой след, пока не получит команду «Кончить рисовать». Управлять черепашкой можно при помощи инструкций Питона. Вот как, например, выглядит программа, рисующая квадрат:

import turtle # Подключаем модуль turtle turtle.reset() # Очищаем экран, приводим черепашку в начальное положение turtle.pendown() # Опускаем перо перо (начало рисования) turtle.forward(50) # Проползти 50 пикселей вперед turtle.left(90) # Поворот влево на 90 градусов turtle.forward(50) # Рисуем вторую сторону квадрата turtle.left(90) turtle.forward(50) # Рисуем третью сторону квадрата turtle.left(90) turtle.forward(50) # Рисуем четвертую сторону квадрата turtle.penup() # Поднять перо (закончить рисовать) turtle.forward(100) # Отвести черепашку от рисунка в сторону turtle.mainloop() # Задержать окно на экране

Документация

Основные команды для управления черепашкой

Ползаем

forward(distance) Проползти вперёд на distance пикселей; backward(distance) Проползти назад на distance пикселей; right(angle) Повернуться налево на angle градусов; left(angle) Повернуться направо на angle градусов; goto(x, y) Переместить черепашку в точку с координатами (x,y); setx(x) Установить x координату черепашки; sety(y) Установить y координату черепашки; setheading(to_angle) Повернуть черепашку под углом to_angle к вертикали (0 — наверх, 90 — направо); home() Вернуть черепашку домой — в точку, с координатами (0,0); circle(radius) Нарисовать окружность радиуса |r|, центр которой находится слева от черепашки, если r>0 и справа, если r

Рисуем

pendown() Начать рисовать; penup() Закончить рисовать; pensize(width) Установить диаметр пера в width; pencolor(colorstring) Установить цвет линии, которая рисует черепашка (например, ‘brown’ или ‘#32c18f’ ); fillcolor(colorstring) Установить цвет заполнения; begin_fill() Начать следить за черепашкой для заполнения области; end_fill() Заполнить цветом fillcolor область, пройденную черепашкой начиная с begin_fill() ; showturtle() Показать черепашку; hideturtle() Спрятать черепашку; write(text) Вывести текст text ;

Читайте также:  Ошибка при запуске java could not find or load main class

Узнать про черепашку

position() Получить текущие координаты черепашки; towards(x, y) Получить угол между текущим направление черепашки и прямой от черепашки к точке (x,y); xcor() Получить x координату черепашки; ycor() Получить y координату черепашки; heading() Получить текущий угол к вертикали; distance(x, y) Получить расстояние до точки (x,y); isdown() Узнать, рисует ли сейчас черепашка; isvisible() Узнать, видима ли сейчас черепашка;

Интерактив

onkey(function, key) Выполнить функцию function (принимающей два аргумента, x и y — координаты черепашки) после нажатия кнопки key (например, ‘a’, ‘Up’, ‘space’); listen() Начать следить на нажатиями клавиш и кликами мыши; ontimer(function, time) Выполнить функцию function через time миллисекунд; textinput(title, prompt) Вывести окно с заголовком title и текстом prompt , вернуть введённое значение;

Ещё нетривиальные примеры

from turtle import * ANGLE = 170 SIZE = 200 pencolor('red') fillcolor('yellow') speed(10) begin_fill() while True: forward(SIZE) left(ANGLE) if abs(pos()) < 1: break end_fill() mainloop()
from turtle import * def square(length): for i in range(4): forward(length) left(90) def sector(radius, angle): forward(radius) left(90) circle(radius, angle) left(90) forward(radius) left(180-angle) def move(x, y): up() forward(x) left(90) forward(y) right(90) down() def radioactive(radius1, radius2, side, angle=60, outlinecol="black", fillcol="yellow"): color(outlinecol) move(-(side/2), -(side/2)) begin_fill() square(side) color(fillcol) end_fill() move((side/2), (side/2)) color(outlinecol) right(90 + angle/2) for i in range(3): begin_fill() sector(radius1,angle) left(120) color(outlinecol) end_fill() up() forward(radius2) left(90) down() color(fillcol) begin_fill() circle(radius2) color(outlinecol) end_fill() up() left(90) forward(radius2) width(1) reset() width(5) speed(1) radioactive(160, 36, 400) mainloop()
from turtle import * bgcolor("gray60") pu() speed(0) ht() shape("square") shapesize(3.2, 3.5) shift = [10, 0, 10, 28, 10, 0, 10, 28, 10] tracer(False) for i in range(9): goto(-365 + shift[i], 267-66*i) color("black") for i in range(11): stamp() fd(70) if pencolor() == "white": color("black") else: color("white") mainloop()
from turtle import * color("orange") dot(10) center = pos() color("blue") shape("turtle") speed(0) penup() goto(200, 0) pendown() G = 800 v = Vec2D(0, 1) t = 0 dt = 1 while t < 1100: goto(pos() + v * dt) setheading(towards(center)) r = distance(center) acc = (-G / r ** 3) * pos() v += acc * dt t += dt mainloop()
from turtle import * from math import sin, cos, pi FORCE_UNIT = 0.1 # Ускорение двигателя HEIGHT = 350 WIDTH = 250 def one_step(): # Одна итерация движения global speed_x, speed_y # Глобальные переменные, в которых хранится текущая скорость cur_x, cur_y = position() # Получаем текущие координат cur_x += speed_x # Двигаем "корабль" cur_y += speed_y setpos(cur_x, cur_y) if abs(cur_x) > WIDTH: # Проверяем, что не улетели слишком далеко speed_x *= -1 if abs(cur_y) > HEIGHT: speed_y *= -1 def turn_left(): # Была нажата клавиша "Налево" left(10) def turn_right(): # Была нажата клавиша "Направо" right(10) def exit(): # Была нажата клавиша Escape, завершаем работу global continue_game continue_game = False def speed_up(): # Была нажата клавиша "Вверх" global speed_x, speed_y # Глобальные переменные, в которых хранится текущая скорость alpha = heading() * pi / 180.0 # Получаем текущий угол в радианах speed_x += FORCE_UNIT * cos(alpha) # Ускоряемся speed_y += FORCE_UNIT * sin(alpha) def main(): reset() global speed_x, speed_y # Глобальные переменные, в которых хранится текущая скорость global continue_game speed_x = speed_y = 0 continue_game = True speed(0) # Перемещаться будем мгновенно pensize(2) # И рисовать за собой линию shape("turtle") # Форма курсора fillcolor("blue") # Цвет черепашки pencolor("red") # Цвет линии onkeypress(turn_left, "Left") # По нажатию кнопки "Налево" вызвать функцию turnleft() onkeypress(turn_right, "Right") # . onkeypress(speed_up, "Up") # . onkey(exit, "Escape") # По нажатию кнопки Escape завершить работу listen() # Начинаем "слушать" нажатия клавиш while continue_game: one_step() # Запускаем основной цикл bye() main()
from turtle import * def switchpen(): if isdown(): pu() else: pd() def demo2(): """Demo of some new features.""" speed(1) st() pensize(3) setheading(towards(0, 0)) radius = distance(0, 0)/2.0 rt(90) for _ in range(18): switchpen() circle(radius, 10) write("wait a moment. ") while undobufferentries(): undo() reset() lt(90) colormode(255) laenge = 10 pencolor("green") pensize(3) lt(180) for i in range(-2, 16): if i > 0: begin_fill() fillcolor(255-15*i, 0, 15*i) for _ in range(3): fd(laenge) lt(120) end_fill() laenge += 10 lt(15) speed((speed()+1)%12) #end_fill() lt(120) pu() fd(70) rt(30) pd() color("red","yellow") speed(0) begin_fill() for _ in range(4): circle(50, 90) rt(90) fd(30) rt(90) end_fill() lt(90) pu() fd(30) pd() shape("turtle") tri = getturtle() tri.resizemode("auto") turtle = Turtle() turtle.resizemode("auto") turtle.shape("turtle") turtle.reset() turtle.left(90) turtle.speed(0) turtle.up() turtle.goto(280, 40) turtle.lt(30) turtle.down() turtle.speed(6) turtle.color("blue","orange") turtle.pensize(2) tri.speed(6) setheading(towards(turtle)) count = 1 while tri.distance(turtle) > 4: turtle.fd(3.5) turtle.lt(0.6) tri.setheading(tri.towards(turtle)) tri.fd(4) if count % 20 == 0: turtle.stamp() tri.stamp() switchpen() count += 1 tri.write("CAUGHT! ", font=("Arial", 16, "bold"), align="right") tri.pencolor("black") tri.pencolor("red") def baba(xdummy, ydummy): clearscreen() bye() while undobufferentries(): tri.undo() turtle.undo() tri.fd(50) tri.write(" Click me!", font = ("Courier", 12, "bold") ) tri.onclick(baba, 1) demo2()

Источник

Читайте также:  Spring applicationcontext java class

Окно программы

import turtle – Подключаем библиотеку
turtle.title (“Название окна”)
t=turtle.Turtle () – Создаем переменную t, через которую будет действовать черепашка
turtle.mainloop () - Данная строка вызывает функцию mainloop. Эта функция вызывает бесконечный цикл окна, поэтому окно будет ждать любого взаимодействия с пользователем, пока не будет закрыто.

Команды перемещения черепашки

forward (n) - Проползти вперед n шагов (пикселей).
backward (n) - Проползти назад n шагов (пикселей).
left (angle) - Повернуться налево на а градусов.
right (angle) - Повернуться направо на a градусов.
circle (r) - Нарисовать окружность радиуса |r|, центр которой находится слева от черепашки, если r>0 и справа, если r circle (r,a) - Нарисовать дугу радиуса r и градусной мерой a. Дуга рисуется против часовой стрелки, если r>0 и по часовой стрелке, если r goto (x,y) - Переместить черепашку в точку с координатами (x,y).

Команды рисования

down() - Опустить перо. После этой команды черепашка начнет оставлять след при любом своем передвижении.
up() - Поднять перо.
width(n) - Установить ширину следа черепашки в n пикселей.
сolor(s) - Цвет следа черепашки. Например, "red", "yellow", "green" и т.д.
fill() - Используется для рисования закрашенных областей. Начиная рисовать закрашенную область, дайте команду turtle.begin_fill(), а закончив рисование области - turtle.end_fill().

Прочие команды

reset () - Возврат черепашки в исходное состояние: очищается экран, сбрасываются все параметры, черепашка устанавливается в начало координат, глядя вправо.
seth(90) - Черепаху разворачиваем на север по оси ординат
сlear () - Очистка экрана.
write (s) - Вывести текстовую строку s в точке нахождения черепашки.
radians () - Установить меру измерения углов (во всех командах черепашки) в радианы.
degrees () - Установить меру измерения углов в градусы. Этот режим включен по умолчанию.
tracer (f) - Включить режим отладки (трассировки) программы черепашки, если значение f равно 1. По умолчанию режим отладки включен.

Пример. Два пересекающихся отрезка под прямым углом не параллельно осям координат

Упражнения

1. Нарисуйте на экране равносторонний треугольник. Нарисуйте желтый равносторонний треугольник.

2. Нарисуйте на экране 10 равносторонних треугольников в случайной позиции и со случайной стороной.

3. Нарисуйте на экране квадрат и множество из 25 квадратов, стороны которых больше предыдущих.

4. Нарисуйте квадрат, стороны которого не параллельны осям координат c диагоналями.

5. Нарисуйте спиральки (как на картинке).

6. Нарисуйте две касающиеся окружности.

7. Нарисуйте две пересекающиеся окружности.

8. Нарисуйте сами какую-нибудь цветную картинку (дом, дерево, рожицу, компьютер, . ).

Источник

Оцените статью