На початку травня 1889 року Вінсент ван Гог потрапив до божевільні Сен-Поль-де-Мозол. Протягом року, коли він перебував в Сен-Поль, він продовжував писати картини.
23 травня 1889 року Вінсент писав братові Тео: «Крізь вікно з залізними ґратами я бачу квадрат пшениці в огорожі, перспективу на манер Ван Гойєна, над якою вранці я бачу схід сонця у своїй славі».
А до середини червня він написав свою неймовірну «Зоряну ніч».
Яким він бачив те сонце скрізь вікно з гратами? Яке було то сонце. Ніхто не дізнається. А якщо комп’ютеру дати кольори картини «Зоряна ніч» і генератор випадкових чисел… Комусь це творчість, комусь — пайтон, а комусь — сонце.
Кожен запуск — нове неповторне сонце. В цю мить таке:
Можете і ви запустити цей код і отримаєте своє сонце в квадраті вікна. Можливо, саме таке, яким його бачив великий митець…. Хтозна...
# Сонце в квадраті вікна
# (пам'яті Вінсента ван Гога)
# Ідея і код: ttolich (pletyvo.in.ua).
# Кольори: Вінсент ван Гог (Зоряна ніч)
from random import randint, choice
import tkinter
size = 800
root = tkinter.Tk()
colors = (['#D0AD2E', '#D1B845', '#BBC87D', '#C3C67C', '#C4AF31',
'#8EA3AC', '#5C7492', '#93A8D4', '#7790A0', '#475B82',
'#232A59', '#344262', '#23305C', '#1E2E49', '#4A5351'])
canvas = tkinter.Canvas(root, width=size, height=size, bg='#0F122B')
canvas.pack()
count = 0
while count < 1500:
x0 = randint(0, size) + randint(0, size/25)
y0 = randint(0, size) + randint(0, size/25)
if abs(x0 - size/2) < 100 and abs(y0 - size/2) < 100:
color = choice(colors[:6])
d1 = randint(0, size/5)
d2 = randint(0, size/8)
canvas.create_oval(x0, y0, x0 + d1, y0 + d2, fill=color, width = 0)
elif abs(x0 - size/2) < 300 and abs(y0 - size/2) < 300:
color = choice(colors[6:11])
d1 = randint(0, size/10)
d2 = randint(0, size/16)
canvas.create_rectangle(x0, y0, x0 + d1, y0 + d2, fill=color, width = 0)
elif abs(x0 - size/2) < 500 and abs(y0 - size/2) < 500:
color = choice(colors[11:])
d1 = randint(0, size/20)
d2 = randint(0, size/20)
canvas.create_arc(x0, y0, x0 + d1, y0 + d2, fill=color, outline=color, start=randint(0, 90), extent=randint(90, 120), width=0)
root.update()
count += 1