Cymatics Python Coding смотреть онлайн
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib.widgets import Slider, RadioButtons
# Initialize parameters and grid
initial_resolution = 256
nx, ny = initial_resolution, initial_resolution
grid = np.zeros((nx, ny))
old_grid = np.zeros((nx, ny))
new_grid = np.zeros((nx, ny))
c = np.full((nx, ny), 2.0)
dt = 0.35
dx = 1.0
damping = 0.002
interval = 50
frequency = 963
def initialize_grid(resolution):
global nx, ny, grid, old_grid, new_grid, c
nx, ny = resolution, resolution
grid = np.zeros((nx, ny))
old_grid = np.zeros((nx, ny))
new_grid = np.zeros((nx, ny))
c = np.full((nx, ny), 2.0)
initialize_grid(initial_resolution)
def update(frame, img):
global grid, old_grid, new_grid
laplacian = np.roll(grid, 1, axis=0) + np.roll(grid, -1, axis=0) + \
np.roll(grid, 1, axis=1) + np.roll(grid, -1, axis=1) - 4 * grid
new_grid = (2 * grid - old_grid + c**2 * dt**2 * laplacian / dx**2) * (1 - damping)
new_grid[nx//2, ny//2] = np.sin(2 * np.pi * frequency * frame / 10000)
old_grid, grid = grid, new_grid
img.set_array(grid)
img.set_clim(s_clim_min.val, s_clim_max.val)
return [img]
# Create figure and axis
fig, ax = plt.subplots(figsize=(10, 10))
plt.subplots_adjust(bottom=0.5, top=0.95)
fig.set_facecolor('black')
ax.set_facecolor('black')
ax.set_aspect('equal')
ax.axis('off')
# Set colormap and add colorbar
colormap = 'inferno'
img = ax.imshow(grid, cmap=colormap, animated=True)
cbar = plt.colorbar(img, orientation='vertical')
cbar.set_label('Amplitude', color='red')
plt.setp(plt.getp(cbar.ax.axes, 'yticklabels'), color='red')
# Create sliders
axcolor = 'white'
slider_axes = [
plt.axes([0.25, 0.01 + i * 0.05, 0.65, 0.03], facecolor=axcolor)
for i in range(6)
]
s_frequency = Slider(slider_axes[0], 'Frequency', 1, 24000, valinit=frequency, color='red')
s_damping = Slider(slider_axes[1], 'Damping', 0.0, 0.05, valinit=damping, color='red')
s_interval = Slider(slider_axes[2], 'Interval', 10, 200, valinit=interval, color='red')
s_resolution = Slider(slider_axes[3], 'Resolution', 64, 1024, valinit=initial_resolution, valstep=64, color='red')
s_clim_min = Slider(slider_axes[4], 'Color Min', -3, 3, valinit=-1, color='red')
s_clim_max = Slider(slider_axes[5], 'Color Max', -3, 3, valinit=1, color='red')
# Set slider text to red
for slider in [s_frequency, s_damping, s_interval, s_resolution, s_clim_min, s_clim_max]:
slider.label.set_color('red')
slider.valtext.set_color('red')
# Add colormap selector
rax = plt.axes([0.05, 0.7, 0.15, 0.15], facecolor=axcolor)
radio = RadioButtons(rax, ('inferno', 'plasma', 'magma', 'viridis'), active=0)
def colormap_func(label):
img.set_cmap(label)
fig.canvas.draw_idle()
radio.on_clicked(colormap_func)
def update_slider(val):
global frequency, damping, interval
frequency = s_frequency.val
damping = s_damping.val
interval = s_interval.val
new_resolution = int(s_resolution.val)
if new_resolution != nx:
initialize_grid(new_resolution)
s_frequency.on_changed(update_slider)
s_damping.on_changed(update_slider)
s_interval.on_changed(update_slider)
s_resolution.on_changed(update_slider)
s_clim_min.on_changed(update_slider)
s_clim_max.on_changed(update_slider)
# Create animation
ani = animation.FuncAnimation(fig, update, frames=range(200), fargs=(img,), blit=True, interval=interval)
# Show the plot
plt.show()
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Cymatics Python Coding» бесплатно и без регистрации, вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.