RUVIDEO
Поделитесь видео 🙏

Rainbow rain with python and Tkinter смотреть онлайн

Link to the gitlab sourcecode:
https://gitlab.com/ymmx/youtube/blob/master/rainbowrain/rainbowrain.py

source code:
# -*- coding: utf-8 -*-

from __future__ import print_function, absolute_import

from tkinter import *

import random


class a_drop:

def __init__(self,x=1,y=1,z=1,cv=None,v=1,l=1,s=1,color=(0,0,0)):

self.x=x

self.y=y

self.z=z

self.cv=cv

self.v=v

self.l=l

self.s=s

self.color='#%02x%02x%02x' % color

def gen(self,width, height,zmin,zmax,speed,length,size):

self.x=random.randint(0,width)

self.y =random.randint(-height,0)

self.z=random.uniform(zmin,zmax)

self.v=self.z*speed

self.l=self.z*length

self.s=(self.z-zmin)*size

self.color= '#%02x%02x%02x' % (random.randint(0,255),random.randint(0,255),random.randint(0,255))


class MyApp(Tk):

def __init__(self):

self.nbi=0

Tk.__init__(self)

fr = Frame(self)

fr.pack()

self.canvas = Canvas(fr, height = 720, width = 1280,bg= 'gray10')

self.canvas.pack()

nb_drops = 1000

self.zmin=0.3

self.zmax=1.

self.speed=10.

self.length=10.

self.size=3.

self.drops = list(range(nb_drops))

for idx, drop_ in enumerate(self.drops):

self.drops[idx]=a_drop()

self.drops[idx].gen(self.canvas.winfo_reqwidth(), self.canvas.winfo_reqheight(),self.zmin,self.zmax,self.speed,self.length,self.size)

self.drops[idx].cv =self.canvas.create_line(self.drops[idx].x, self.drops[idx].y, self.drops[idx].x, self.drops[idx].y+self.drops[idx].l,width=self.drops[idx].s)

self.canvas.itemconfig(self.drops[idx].cv, fill=self.drops[idx].color) # change color

self.update_drops()

return


def update_drops(self ):

for idx, drop_ in enumerate(self.drops):

self.drops[idx].y += self.drops[idx].v

self.canvas.coords(self.drops[idx].cv,self.drops[idx].x, self.drops[idx].y, self.drops[idx].x , self.drops[idx].y+self.drops[idx].l)

if self.drops[idx].y 〉 self.canvas.winfo_height():

self.canvas.delete(self.drops[idx].cv)

self.drops[idx].gen(self.canvas.winfo_reqwidth(), self.canvas.winfo_reqheight(),self.zmin,self.zmax,self.speed,self.length,self.size)

self.drops[idx].cv =self.canvas.create_line(self.drops[idx].x, self.drops[idx].y, self.drops[idx].x, self.drops[idx].y+self.drops[idx].l,width=self.drops[idx].s)

self.canvas.itemconfig(self.drops[idx].cv, fill=self.drops[idx].color)

self.canvas.update()

return

if __name__ == "__main__":

root = MyApp()

i=0

while 1:

root.update_drops( )

root.after(1)

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Rainbow rain with python and Tkinter» бесплатно и без регистрации, вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.