simple draw - рисование линий через функцию
Нарисовать 7 линий разного цвета, использовать библиотеку simple_draw, передать координату начала и координату окончания через функцию. Помогите понять почему переменные 'x' переданные через функции определяется как None? Как передать эту координату через функцию, чтобы она сразу определялась как значение по умолчанию. Что бы результат был 7 линий разного цвета с одинаковыми координатами 'y', а изменялась, только, координата 'x' как здесь.
import simple_draw as sd
sd.resolution = (600, 600)
rainbow_colors = (sd.COLOR_RED, sd.COLOR_ORANGE, sd.COLOR_YELLOW, sd.COLOR_GREEN,
sd.COLOR_CYAN, sd.COLOR_BLUE, sd.COLOR_PURPLE)
def start_point(x=50):
pass
def end_point(x1=350):
pass
for i in range(len(rainbow_colors)):
sd.line(sd.Point(start_point(), 50), sd.Point(end_point(), 450), color=rainbow_colors[i], width=10)
sd.pause()
Пробовал использовать выражения для изменения значения координаты 'x', как в функциях, так и в цикле, результат не меняется.
Как понимаю это получается потому, что параметр координаты переданный через функцию воспринимается как x = None после чего библиотека simle_draw определяет рандомную координату 'x'.
Результат получается вот такой
Ответы (1 шт):
Спасибо @Стас твой комментарий помог решить задачу. Действительно в написанных мною функциях для координаты 'x' начала и конца линии, функции не чего ни возвращали. Добавил выражение изменения 'x' для цикла и return 'x' и всё заработало как надо. Magic
import simple_draw as sd
sd.resolution = (600, 600)
rainbow_colors = (sd.COLOR_RED, sd.COLOR_ORANGE, sd.COLOR_YELLOW, sd.COLOR_GREEN,sd.COLOR_CYAN, sd.COLOR_BLUE, sd.COLOR_PURPLE)
for i in range(len(rainbow_colors)):
def start_point(x=50):
x += i * 30
return x
def end_point(x1=350):
x1 += i * 30
return x1
sd.line(sd.get_point(start_point(), 50), sd.get_point(end_point(), 450), color=rainbow_colors[i], width=10)
sd.pause()
Результат как надо)

