Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 22, 2021 23:42:11

allmax
Зарегистрирован: 2021-10-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Нарисовать радугу

Добрый вечер, уважаемые!

 def raduga():
    for i in range (0, 180, 30):
        w.create_oval(350 - i, 550 - i, 450 + i, 650 + i, width = 30, outline='red')

Как сделать, чтобы в outline каждый проход цикла попадал новый цвет? Например, красный, оранжевый, желтый и т.д

Офлайн

#2 Окт. 22, 2021 23:51:34

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1353
Репутация: +  118  -
Профиль   Отправить e-mail  

Нарисовать радугу

allmax
Как сделать, чтобы в outline каждый проход цикла попадал новый цвет?
как бы вы это сделали,если бы делали это вручную?

Офлайн

#3 Окт. 22, 2021 23:53:09

allmax
Зарегистрирован: 2021-10-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Нарисовать радугу

xam1816
Вручную я бы нарисовал 7 “овалов” и каждый с новым цветом. Не знаю как в цикл подставлять цвета.

Отредактировано allmax (Окт. 22, 2021 23:53:44)

Офлайн

#4 Окт. 23, 2021 00:09:52

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1353
Репутация: +  118  -
Профиль   Отправить e-mail  

Нарисовать радугу

allmax
Вручную я бы нарисовал 7 “овалов” и каждый с новым цветом. Не знаю как в цикл подставлять цвета.
Присмотритесь пристально к алгоритму,который бы вы составили в голове,когда рисуете радугу.и опишите его на языке программирования.К примеру
цвета у нас хранятся в памяти
чтобы перечислить цвета нужно
взять первый цвет из памяти
вывести
взять второй цвет
вывести
и тд…

чтобы нарисовать радугу нужно
взять первую дугу с цветом
вывести
в зять вторую дугу с другим цветом
вывести
и тд…

Список цветов в голове я не знаю как у вас выглядит
на Pythone вот так:
 list = ['red','orange','yellow','green','blue','indigo','violet']

Офлайн

#5 Окт. 23, 2021 00:18:59

allmax
Зарегистрирован: 2021-10-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Нарисовать радугу

xam1816
У меня пока получается менять только радиус в цикле. Как сюда ещё прибавить цвета? Меняю переменную по координате. Как же сделать, чтобы эта же переменная меняла и цвет..

Отредактировано allmax (Окт. 23, 2021 00:21:41)

Офлайн

#6 Окт. 23, 2021 00:24:09

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1353
Репутация: +  118  -
Профиль   Отправить e-mail  

Нарисовать радугу

 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()

функция zip() для одновременной итерации из списков

Офлайн

#7 Окт. 23, 2021 00:25:44

allmax
Зарегистрирован: 2021-10-22
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Нарисовать радугу

xam1816
Большое спасибо!

Офлайн

#8 Окт. 26, 2021 04:44:07

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 144
Репутация: +  8  -
Профиль   Отправить e-mail  

Нарисовать радугу

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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version