Алан Гибизов, Приплюсовывал в каких то местах просто +1, ничего не получалось, говорили что нужен новый цикл для этого, но как это прописать в коде я не знаю
Влад Барин, надо чуть по другому.
Простой способ такой:
Вместо 100 вписать переменную. Эту переменную до цикла установить равной 100.
Тело цикла обернуть в ещё один цикл, повторяющийся 8 раз; переменная внутри первого цикла (который на 60) после 2-го цикла должна увеличиваться на 1.
Тогда большой цикл будет отрисовывать лучи длиной со значение переменной; потом переменная прирастает на 1 и снова 8 лучей рисуются с приросшей длиной.
Влад Барин, Может стоит почитать основы языка, а то уже не первый подобный вопрос от Вас, который решается базовыми принципами - переменными, циклами.
t.forward(100) рисует линию фиксированной длиной 100. Если мы хотим эту длину сделать изменяющейся, значит вместо 100 использовать переменную, а весь текущий цикл обернуть в еще один цикл, изменяющий эту переменную в нужном диапазоне.
for length in range(100, 110):
# ваш текущий цикл for (только там нет необходимости делать делать range(60), ведь рисуется только 8 отрезков
# и внутри цикла соответственно вместо t.forward(100) используем нашу переменную с длиной отрезка
t.forward(length)
o5a, Написал вот такой код
import turtle
wn = turtle.Screen()
t = turtle.Turtle()
for x in range(40, 300):
t.goto(0,0)
t.forward(x)
t.right(45+44)
t.speed(100)
Вышло вот это
Влад Барин, t.speed() устанавливает фиксированную скорость. Зачем его было заносить внутрь цикла? Вместо однократной установки скорости Вы делаете то же самое, только каждый цикл.
По самому рисунку. Чтобы начертить нужное, надо сначала придумать алгоритм, по которому подобная картинка будет рисоваться, потом воплотить его в код.
Тут мы видим, что рисуется полная окружность из N линий против часовой стрелки (т.е. через left() ). Начинается она с длины 0 (т.к. начальная точка прямо в центре) и до некой длины L (конечная максимальная длина, отрезок вправо).
Соответственно можно написать алгоритм (для простоты пока примем количество линий равное максимальной длине отрезка, L=N, если они расходятся, не сложно пересчитать длину отрезка через пропорции от текущей линии, x*L/N)
цикл x от 0 до N:
переходим в начало координат (0,0)
рисуем отрезок длиной x
поворачиваемся против часовой на пропорциональный угол.
Т.к. полная окружность - это 360, значит угол будет 360/N
Вот и весь алгоритм, осталось Вам написать код для turtle.
Ваш код в целом похож, только неправильно рассчитан угол поворота, но это простая математика.