Как нарисовать квадрат в python
Перейти к содержимому

Как нарисовать квадрат в python

  • автор:

Как сделать движение нарисованного квадрата в python с помощью библиотеки turtle

Прошу помощи, хочу сделать движение квадрата в python с помощью библиотеки turtle. Задумка такая: рисуем квадрат с помощью черепахи, делаем ему цвет, а дальше проблема, надо чтобы этот квадрат уходил вправо за пределы экрана, а появлялся слева и опять двигался вправо, в целом движение по кругу. Прикрепляю то, что «получилось» сделать.

import turtle MyTur = turtle.Turtle() MyTur.hideturtle() MyScreen = turtle.Screen() MyScreen.bgcolor("white") MyScreen.screensize(500, 500) MyScreen.tracer(0) def square(): MyTur.begin_fill() MyTur.fillcolor("blue") for i in range(4): MyTur.forward(50) MyTur.right(90) MyTur.end_fill() MyTur.penup() x = -350 MyTur.goto(x, 0) MyTur.pendown() while True: MyTur.clear() square() MyScreen.update() MyTur.forward(0.05) 

Отслеживать
задан 11 янв 2023 в 18:56
13 4 4 бронзовых знака

У вас уже получилось нарисовать квадрат. Теперь можно просто рисовать его той же функцией, только немного смещенным, а предыдущий стирать с экрана. Вызывать функцию рисования можно по таймеру 20-50 раз в секунду. docs.python.org/3/library/turtle.html#turtle.ontimer. Ну и затем обработать события около границ экрана.

11 янв 2023 в 19:22

Получился такой код, но не могу обработать события около границ. import turtle MyTur = turtle.Turtle() MyTur.hideturtle() MyScreen = turtle.Screen() MyScreen.bgcolor(«white») MyScreen.screensize(500, 500) MyScreen.tracer(0) def square(): MyTur.begin_fill() MyTur.fillcolor(«blue») for i in range(4): MyTur.forward(50) MyTur.right(90) MyTur.end_fill() MyTur.penup() x = -350 MyTur.goto(x, 0) MyTur.pendown() while True: MyTur.clear() square() MyScreen.update() MyTur.forward(0.05)

11 янв 2023 в 19:56

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

После того, как передвинули квадрат, нужно проверить вышли ли мы за правую границу (x > 500): если вышли, то x = -500

import turtle MyTur = turtle.Turtle() MyTur.hideturtle() MyScreen = turtle.Screen() MyScreen.bgcolor("white") MyScreen.screensize(500, 500) MyScreen.tracer(0) def square(): MyTur.begin_fill() MyTur.fillcolor("blue") for i in range(4): MyTur.forward(50) MyTur.right(90) MyTur.end_fill() MyTur.penup() x = -350 MyTur.goto(x, 0) MyTur.pendown() while True: MyTur.clear() square() MyScreen.update() MyTur.forward(0.05) # Сдвинули квадрат # Проверяем выходит ли за границу новая координата x if MyTur.pos()[0] > 500: # Если вышли, то передвигаем квадрат на -500 MyTur.penup() x = -500 MyTur.goto(x, 0) MyTur.pendown() 

По поводу MyTur.pos()[0] :

MyTur.pos() возвращает кортеж из двух элементов: например, (-349.90,-0.00). Первое значение — x, второе — y. Нам нужен x, отчет в питоне начинается с 0, поэтому x = MyTur.pos()[0]

Простое рисование с помощью черепашки¶

У неё есть функции в стиле turtle.forward(. ) и turtle.left(. ) , с помощью которых черепашка может двигаться.

Перед тем как начать работу с черепашкой, необходимо импортировать соответствующий модуль. Мы рекомендуем экспериментировать с ней в интерактивной оболочке (для начала), т.к. при использовании файлов придётся заниматься дополнительной утомительной работой. Перейди в терминал и введи:

import turtle 

_images/default.png

Not seeing anything on Mac OS? Try issuing a command like turtle.forward(0) and looking if a new window opened behind your command line.

Используешь Ubuntu и получаешь сообщение об ошибке “No module named _tkinter”? Установи отсутствующий необходимый пакет: sudo apt-get install python3-tk

While it might be tempting to just copy and paste what’s written on this page into your terminal, we encourage you to type out each command. Typing gets the syntax under your fingers (building that muscle memory!) and can even help avoid strange syntax errors.

turtle.forward(25) 

_images/forward.png

turtle.left(30) 

_images/left.png

Функция turtle.forward(. ) заставляет черепашку двигаться вперёд на указанное расстояние. turtle.left(. ) приказывает черепашке повернуться влево на указанную градусную меру угла. А turtle.backward(. ) и turtle.right(. ) действуют анлогично — первая заставляет черепашку двигаться назад, а вторая — поворачиваться вправо.

Если ты хочешь начать заново, введи turtle.reset() , чтобы стереть рисунок. Мы рассмотрим turtle.reset() подробнее немного позже.

Стандартная “черепашка” – всего лишь треугольник. Это не интересно! Придадим ей нормальный вид командой turtle.shape() :

turtle.shape("turtle") 

Так намного лучше!

If you put the commands into a file, you might have recognized that the turtle window vanishes after the turtle finished its movement. (That is because Python exits when your turtle has finished moving. Since the turtle window belongs to Python, it terminates as well.) To prevent that, just put turtle.exitonclick() at the bottom of your file. Now the window stays open until you click on it:

import turtle turtle.shape("turtle") turtle.forward(25) turtle.exitonclick() 

Python — язык программирования, в котором крайне важны отступы в коде. Подробности мы узнаем позже, в главах про функции, но сейчас тебе просто необходимо запомнить, что лишний пробел или символ табуляции перед строкой может вызвать ошибку.

Рисуем квадрат¶

You’re not always expected to know the anwer immediately. Learn by trial and error! Experiment, see what python does when you tell it different things, what gives beautiful (although sometimes unexpected) results and what gives errors. If you want to keep playing with something you learned that creates interesting results, that’s OK too. Don’t hesitate to try and fail and learn from it!

Упражнение¶

Нарисуй квадрат, как на рисунке ниже:

_images/square.png

Для квадрата тебе понадобится прямоугольный, т.е. 90-градусный, угол.

Решение¶

turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) 

Notice how the turtle starts and finishes in the same place and facing the same direction, before and after drawing the square. This is a useful convention to follow, it makes it easier to draw multiple shapes later on.

Дополнительно¶

If you want to get creative, you can modify your shape with the turtle.width(. ) and turtle.color(. ) functions. How do you use these functions? Before you can use a function you need to know its signature (for example the number of parameters and what they mean.) To find this out you can type help(turtle.color) into the Python shell. If there is a lot of text, Python will put the help text into a pager, which lets you page up and down. Press the q key to exit the pager.

Видишь такую ошибку:

NameError: name 'turtle' is not defined

когда пытаешься просмотреть справку? В Python необходимо импортировать имена, перед тем, как обращаться к ним, т.е. в нашем случае необходимо выполнить import turtle перед help(turtle.color) .

Также найти информацию о функциях можно в онлайн-документации.

Если ты допустил ошибку, то ты можешь воспользоваться командой turtle.reset() , чтобы стереть рисунок, либо командой turtle.undo() ., чтобы отменить последние действия.

As you might have read in the help, you can modify the color with turtle.color( colorstring ) . These include but are not limited to “red,” “green,” and “violet.” See the colours manual for an extensive list.

Рисуем прямоугольник¶

Упражнение¶

Ты тоже можешь нарисовать прямоугольник?

_images/rectangle.png

Решение¶

turtle.forward(100) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.forward(100) turtle.left(90) turtle.forward(50) turtle.left(90) 

Дополнительно¶

How about a triangle? In an equilateral triangle (a triangle with all sides of equal length) each corner has an angle of 60 degrees.

Больше квадратов¶

Упражнение¶

Now, draw a tilted square. And another one, and another one. You can experiment with the angles between the individual squares.

_images/tiltedsquares.png

На изображении показан поворот черепашки на 20 градусов. Ты же можешь попробовать, например, 30 или 40.

Решение¶

turtle.left(20) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.left(30) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.left(40) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) turtle.forward(50) turtle.left(90) 

© Авторские права 2012–2014, OpenTechSchool and contributors.
Создано с помощью Sphinx 1.3.1.

LygutaKsusha / Нарисовать квадрат (цикл for)

Save LygutaKsusha/9635649 to your computer and use it in GitHub Desktop.

Нарисовать квадрат (цикл for)

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

public class Kvadrat
public static void main (String [] args)
int num = 5;
for (int x = 0; x
for (int z = 0; z
System.out.print («*»);
>
System.out.println();
>
>
>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Footer

© 2024 GitHub, Inc.

You can’t perform that action at this time.

Нарисовать квадрат

Author24 — интернет-сервис помощи студентам

Необходимо нарисовать квадрат в квадрате используя команду circle
не получается развернуть квадраты вдоль оси Х

Не получается нарисовать круг и квадрат
Здравствуйте, пытаемся в idle написовать круг и заполнить его цветом, но ничего не получается (и.

Задана сторона квадрата х и символ. Нарисовать квадрат со стороной х из этих символов
Сижу думаю ничего на ум придти не может Помогите пожалуйста. Спасибо Задана сторона квадрата х.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Нарисовать окружность, вписать в неё квадрат, и в квадрат — другой квадрат
Добрый день, прошу помощи в решении задачи: Нужно вписать в окружность цветной квадрат а собственно.

Нарисовать квадрат с одинокой звёздочкой в центре. Весь квадрат орисовывается плюсиками
Нарисовать квадрат с одинокой звёздочкой в центре. Весь квадрат орисовывается плюсиками. .

Нарисовать квадрат, в нем круг, в круге квадрат, и так далее
Здравствуйте. Требуется помощь. Нужно нарисовать рисунок. Квадрат, в нем круг, в этом круге.

Нарисовать квадрат
Помогите, пожалуйста, я сделал квадрат, но не могу понять как сделать фигуру внутри: uses.

Нарисовать квадрат
Помогите пожайлуста. Буду очень признателен. Задание звучит так: Построить квадрат АВСD таким.

Нарисовать квадрат
Здравствуйте! Написал программу, которая выводит на экран квадрат: program kvadrat; uses.

Нарисовать квадрат
Нужно принять от пользователя число (допустим "х"), и нарисовать квадрат размером 2х+1 Допустим х.

Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *