Простой способ сделать квадрат и повернутый квадрат в графике Python Turtle

Я работаю в черепаховой графике, чтобы воссоздать этот шаблон: введите описание изображения здесь

Это, вероятно, очень простой вопрос, но есть ли более простой способ создать этот вращающийся квадрат в квадратной форме? Как бы то ни было, я просто использую одну черепаху, чтобы сделать нормальный квадрат, затем медленно перемещаю вторую черепаху в положение, чтобы нарисовать вращающуюся часть. Пример:

import turtle alex = turtle.Turtle() tess = turtle.Turtle() for i in range(4): alex.fd(50) alex.lt(90) tess.pu() tess.fd(25) tess.rt(90) tess.fd(10) tess.rt(225) tess.pd() for i in range(4): tess.fd(50) tess.lt(90) 

Который для меня неудобен в лучшем случае и не работает, если я изменю боковые длины (которые я намереваюсь сделать).

Большое спасибо заранее!

3 Solutions collect form web for “Простой способ сделать квадрат и повернутый квадрат в графике Python Turtle”

Это прекрасное время для начала использования функций! Используя функции, вы можете создать многоразовый кусок кода, который может повторить определенную задачу – например, рисование квадрата или квадратной формы.

Давайте возьмем ваш код и добавим square функцию, которая рисует квадрат определенного размера. Чтобы сделать это, мы расскажем, какую функцию использовать черепаху, а также размер квадрата:

 def square(this_turtle, side_length): for i in range(4): this_turtle.fd(side_length) this_turtle.lt(90) 

Теперь давайте используем новый метод в вашем коде:

 square(alex, 50) tess.pu() tess.fd(25) tess.rt(90) tess.fd(10) tess.rt(225) tess.pd() square(tess, 50) 

Отсюда вы можете подумать о том, как создать star функцию, которая образует квадратную форму любого заданного размера. Удачи!

Вот более подробное объяснение того, как вы можете использовать функции: http://openbookproject.net/thinkcs/python/english3e/functions.html (я подозреваю, что это учебник, который вы уже читаете!)

Я собираюсь предложить противоположный подход к вашим и другим ответам, которые слишком сосредоточены на рисовании квадратов, которые потребуют слишком много работы для завершения. Поскольку это повторяющийся образец, я думаю, что тимпинг – это способ пойти, как и повторные шаблоны в реальной жизни. В частности:

 from turtle import Turtle, Screen BASE_UNIT = 20 def tessellate(turtle, start, stop, step): for x in range(start, stop + 1, step): for y in range(start, stop + 1, step): turtle.goto(x * BASE_UNIT, y * BASE_UNIT) turtle.stamp() turtle.left(45) turtle.stamp() alex = Turtle(shape="square") alex.shapesize(8) alex.color("red") alex.penup() tessellate(alex, -12, 12, 12) tess = Turtle(shape="square") tess.shapesize(4) tess.color("gold") tess.penup() tessellate(tess, -6, 6, 12) screen = Screen() screen.exitonclick() 

ВЫВОД

введите описание изображения здесь

Черепашные марки естественным образом вращаются и масштабируются, какие рисунки черепах нет!

Одна вещь, которую вы заметите, это то, что моя модель не совсем такая. В оригинале два красных (или желтых) квадрата, составляющих звезду , не имеют одинакового размера! Они немного отличаются, чтобы заставить шаблон работать – я оставляю его как упражнение для OP, чтобы исправить это.

Узнайте, как написать функцию; это отличное место для начала. Напишите функцию, чтобы нарисовать квадрат заданного размера, предполагая, что черепаха сейчас находится в начальной точке и обращена в правильном направлении. Затем вставьте квадратную петлю внутри функции:

 def draw_square(tortuga, size): for i in range(4): tortuga.fd(size) tortuga.lt(90) 

Это приведет к удалению деталей чертежа из вашего основного кода.

Следующее, что вы делаете, это написать более общий код, чтобы заставить Тесса следовать за Алексом в нужное место – или заставить Алекс двигаться после окончания первого квадрата, делая второй сам.

  • Как я могу заполнить эти квадраты в черепахе - Python
  • как повернуть текст в графике черепахи питона
  • Не устанавливайте анимацию в Turtle - Python 3.4?
  • Понимание функций в Python
  • Как связать кнопку в черепахе?
  • Turtle Module в python не импортирует
  • Python - лучший язык программирования в мире.