Руководство по модулю turtle 5
import turtle
sc=turtle.getscreen()
sc.setup(500,500)
turtle.goto(-100,100)
turtle.forward(100)
turtle.mainloop()
Инструкция import turtle используется для включения черепашьей графики в python.Инструкция sc=turtle.getscreen() нужна для получения дескриптора экрана,на котором рисует так называемая черепашка.Чтобы установить ширину и высоту графического окна необходимо использовать метод setup экранного объекта.
Координаты (0,0) находятся прямо в центре графического окна.Инструкция turtle.forward(100) рисует прямую линию.
Метод turtle.mainloop() позволяет отлавливать события от пользователя.Например,модуль turtle поддерживает таймер и имеет возможность обнаружения щелчка мышью на графическом окне.
import turtle
sc = turtle.Screen()
sc.setup(400, 400)
def func_on_screen(x, y):
turtle.setx(x)
turtle.sety(y)
turtle.write("Hello turtle")
turtle.onscreenclick(func_on_screen)
turtle.mainloop()
Инструкции turtle.setx(x) и turtle.sety(y) устанавливает координаты черепашки,в которых и будет производится вывод текста.
import turtle
sc = turtle.Screen()
sc.setup(400, 400)
def func_on_screen(x, y):
turtle.clear()
turtle.penup()
turtle.goto(x,y)
turtle.pendown()
turtle.forward(100)
turtle.onscreenclick(func_on_screen)
turtle.mainloop()
Данный выше код позволяет рисовать прямую линию в месте щелчка мышью.Инструкция turtle.clear() очищает область рисования.Инструкция turtle.penup() - поднимает перо рисования,а turtle.pendown() его опускает для начала рисования в текущих координатах.
История создания черепашьей графики покрыта тайной и некоторые ученые пытаются приписать функциональность черепашки себе.Кто на самом деле придумал эту идею непонятно.Но для программирования черепашки это не имеет большого значения.Главное то,что мы можем использовать свободно функции модуля turtle.Официальная документация питона для модуля turtle,как я понял, не поддерживает русского языка.
Вообще черепашка может использоваться для обучения программированию.Данный модуль содержит простые команды рисования и они являются достаточно понятными инструкциями компьютеру.Конечно изучать начала программирования можно и без использования модуля turtle.
Метод turtle.forward позволяет двигать черепашку на указанное расстояние вперёд,при этом учитывается направление,turtle.backward перемещает черепашку назад.
Метод turtle.left - поворачивает черепашку налево на определенный угол,turtle.right поворачивает черепашки направо,как можно понять из названия.
Моей задачей не является кого-либо удивлять программками,а просто придумывать простые идеи и воплощать их в исходный код.
import turtle
sc = turtle.Screen()
sc.setup(400, 400)
def func_on_screen(x, y):
my_text = turtle.textinput("Введите слово","")
turtle.setx(x)
turtle.sety(y)
turtle.clear()
turtle.write(my_text)
turtle.onscreenclick(func_on_screen)
turtle.mainloop()
Метод turtle.textinput служит для ввода некоторого текста в программу от пользователя.Первый параметр определяет заголовок окна сообщения,второй параметр определяет описание характера вводимой информации.В данном случае описание задаётся пустой строкой и понятное дело ничего не отображается в всплывающем диалоговом окне.
import turtle
sc = turtle.Screen()
sc.setup(400, 400)
counter1 = 0
def timer_cycle():
global counter1
turtle.clear()
turtle.write(counter1,font=("Arial", 16, "normal"))
turtle.ontimer(timer_cycle,1000)
counter1 = counter1 + 1
turtle.hideturtle()
timer_cycle()
turtle.mainloop()
Не знаю насколько правильным является данный подход в реализации простейшего таймера в модуле turtle,но по крайнем мере он работает.Для того,чтобы назначить определенный шрифт и его размер используется именованный параметр font,который представляет собой кортеж и этот кортеж присваивается именованному параметру.
Как я понял модуль turtle является надстройкой модуля tkinter.Понятное дело,что модуль tkinter имеет больший функционал,чем модуль turtle.
Инструкция global counter1 позволяет обращаться к глобальной переменной и изменять её значение в функции timer_cycle().
Постепенно в этом руководстве начинают использоваться инструменты языка программирования питон.Ясное дело,что понимание работы с модулем turtle - хороший программисткий навык.Хотя некоторые люди могут считать иначе.)))
import turtle
sc = turtle.Screen()
sc.setup(400, 400)
counter1 = 0
x1 = 0
x2 = 0
y1 = 0
def timer_cycle():
global counter1
global x1,x2,y1
x1 = x1 - counter1
y1 = y1 + counter1
turtle.pensize(5)
turtle.goto(x1,0)
turtle.forward(counter1)
turtle.goto(-x1,0)
turtle.forward(counter1)
counter1 = counter1 + 1
turtle.ontimer(timer_cycle,100)
turtle.hideturtle()
timer_cycle()
turtle.mainloop()
Я хотел реализовать рисование координатной оси в черепашьей графике,но как я понял экспериментальным путём - это не такая уж и простая задача.Здесь надо понимать специфику черепашьей графики.На данный момент времени я не понимаю,как решить возникшую задачу.
Одно из возможных решений выглядит так.
import turtle
sc = turtle.Screen()
sc.setup(400, 400)
counter1 = 0
state = 1
def timer_cycle():
global counter1,state
counter1=counter1+5
turtle.pensize(5)
if state == 1:
turtle.left(90)
state = 2
turtle.goto(0,0)
turtle.forward(counter1)
if state == 2:
turtle.right(180)
state = 1
turtle.goto(0,0)
turtle.forward(counter1)
counter1 = counter1 + 1
turtle.ontimer(timer_cycle,10)
turtle.hideturtle()
timer_cycle()
turtle.mainloop()
Почему-то мне захотелось нарисовать горизонтальную и вертикальную ось по таймеру и я это сделал специфическим образом.Теперь передо мной встаёт задача продолжить этот учебный материал,но пока я не знаю,что будет дальше,какое техническое задание втемяшится в мою голову и как оно будет реализовано на модуле turtle.Но одно я понимаю точно,что когда пишешь программы на питоне,то используешь его общие возможности,чтобы реализация программы просочилась в эту вселенную,полную всяких сюрпризов.Не всегда программы работают так,как думает разработчик и их часто приходится подправлять - по-программистки - фиксить.
Свидетельство о публикации №124052705861