Фигуры на turtle
TURTLE
Надо сделать вот такие фигуры:
Их параметры:
Размеры крышек коробок:
- Треугольную крышку следует сделать со стороной 70.
- Квадратную крышку следует сделать со стороной 60.
- Пятиугольную крышку следует сделать со стороной 50.
- Шестиугольную крышку следует сделать со стороной 40.
- Семиугольную крышку следует сделать со стороной 45.
Код который есть:
from turtle import *
pensize(3)
# Функция для вырезания равносторонней фигуры. Помогает вырезать крышки коробок
def box_top(size, sides):
pendown()
begin_fill()
color("black")
for k in range(sides):
forward(size)
left(360/sides)
color("green")
end_fill()
penup()
penup()
# Требуется вырезать пять фигур.
# Ниже допишите программу так, чтобы получить схему из пяти вариантов как в задании.
goto(-100,-50)
box_top(50, 9)
# это важная функция, её не удаляй!
exitonclick()
Ответы (1 шт):
ужас, куда мы катимся :(
итак, в задаче надо нарисовать равносторонние треугольник, прямоугольник (он же квадрат), пятиугольник, шестиугольник и 7-угольник
в приведенном коде, если не полениться и запустить его, рисуется 9-угольник
т.е. функция box_top(size, sides) при вызове
box_top(50, 9)
рисует 9-угольник
подозрительно
интересно, а если вызвать
box_top(100, 3)
она нарисует треугольник со стороной 100?
учитывая что фигура рисоваться начинается с левого нижнего угла (который задается внешним goto), то
goto(-100,-50)
box_top(50, 3)
goto(-50,-50)
box_top(100, 4)
возможно нарисует впритирку треугольник и квадрат?
Теперь если понятно что поставить начальную координату можно через внешний goto(x0, y0), то как расположить фигурки относительно друг друга?
что нужно знать
- длину стороны
- угол между сторонами - 360 / кол_во сторон
- синусы/косинусы
ну и дальше математика 7 класса
например для 6-угольникв
y0_шестиугольник = y0_квадрат
x0_шестиугольник = x0_квадрат + сторона квадрата + сторона шестиугольника * cos(360 / 6)
