RavOcean
@RavOcean
BAS SD Student

Как рисовать с turtle используя def functions?

Обычно, чтобы начертить hexagon, Я бы написал так:
sides = 6

import turtle

win = turtle.Screen()
table = turtle.Turtle()
win.setup(600,600)

table.pencolor("black")
table.begin_fill()
table.circle(100, 360, sides)
table.fillcolor("grern")
table.end_fill()

win.exitonclick()


Но как можно вывести подобное используя def function?
Нужно иметь четыре параметра. Например:
def table (sides, length, x, y): #length это длина пикселя каждой стороны, x and y это точки, где turtle начнёт рисовать


Если 6 сторон(sides), то каждая линия имеет длину в 100 пикселей, параметр length.

Тут circle() не получится. Нужно именно используя loop. На 6 сторон мы поделили бы 360 на 6.

Как правильно это всё вывести на def functions?
for loop будет примерно такой:

for i in range(6):
    table.forward(100)
    table.left(60)


А как быть с function Я никак не разберусь. Подскажите.

Спасибо.
  • Вопрос задан
  • 349 просмотров
Пригласить эксперта
Ответы на вопрос 1
import turtle

def draw_n(n, length, x = 0,y = 0):
    turtle.penup()
    turtle.setpos(x,y)
    turtle.pendown()
    deg = 180 - 180*(n-2)/n
    print(deg)
    for i in range(n):
        turtle.left(deg)
        turtle.forward(length)

win = turtle.Screen()
table = turtle.Turtle()
win.setup(600,600)
table.pencolor("black")
draw_n(8,100,100,100)


Примерно как-то так. Сначала высчитывается угол поворота, для правильных n-угольников стандартная формула. В качестве параметров выступает n - количество углов, length - длина стороны, и начальные координаты.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
DIGITAL SECTOR Краснодар
от 150 000 до 250 000 ₽