Форум сайта python.su
Добрый вечер, уважаемые!
def raduga(): for i in range (0, 180, 30): w.create_oval(350 - i, 550 - i, 450 + i, 650 + i, width = 30, outline='red')
Офлайн
allmaxкак бы вы это сделали,если бы делали это вручную?
Как сделать, чтобы в outline каждый проход цикла попадал новый цвет?
Офлайн
xam1816Вручную я бы нарисовал 7 “овалов” и каждый с новым цветом. Не знаю как в цикл подставлять цвета.
Отредактировано allmax (Окт. 22, 2021 23:53:44)
Офлайн
allmaxПрисмотритесь пристально к алгоритму,который бы вы составили в голове,когда рисуете радугу.и опишите его на языке программирования.К примеру
Вручную я бы нарисовал 7 “овалов” и каждый с новым цветом. Не знаю как в цикл подставлять цвета.
list = ['red','orange','yellow','green','blue','indigo','violet']
Офлайн
xam1816У меня пока получается менять только радиус в цикле. Как сюда ещё прибавить цвета? Меняю переменную по координате. Как же сделать, чтобы эта же переменная меняла и цвет..
Отредактировано allmax (Окт. 23, 2021 00:21:41)
Офлайн
from tkinter import Tk, Canvas root = Tk() w = Canvas(root, width=1000, height=600, bg = "black") def raduga(): colors = ['red','orange','yellow','green','blue','indigo','violet'] for i, c in zip(range (0, 210, 30),colors): w.create_oval(350 - i, 550 - i, 450 + i, 650 + i, width = 30, outline=c) w.pack() raduga() root.mainloop()
Офлайн
xam1816Большое спасибо!
Офлайн
or not using zip:
def rainbow(): i = 0 for color in ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']: w.create_oval(350 - i, 550 - i, 450 + i, 650 + i, width=30, outline=color) w.pack() i += 30
Офлайн