https://hrubos.tech/blogy/content/images/20260715172313-Snímka obrazovky 2026-07-15 o 16.41.59.png
Pozerám sa na rotáciu v múke: https://x.com/yan_qing35527/status/2077392064275521583 a zaujal ma jej pohyb. Ihneď som si uvedomil, čo sa stane v simulácií, ak sa mení energia na fotón alebo prečo musí platiť Schroedingerova aj Einsteinova rovnica, ukážem:

Majme takýto zámysel: Rotujem guličku na šnúrke po hladine vody a spomaľujem. Otázka je: Čo sa stane vtedy, ak spomalím na rýchlosť, keď už gulička nekĺže, ale spraví prvý spomalený hop na hladine?
No to je práve moment, kedy sa čistá energia zmení na fotón. Veď to sa práve Schroedinger pýta: Čo sa deje s mojou mačkou, ak v krabici, kde je nemňavká? Vznikla práve alebo zanikla práve?
A v tomto momente si všimnite plochu kruhu aka fotónu, je štvrtinová však? A kde to vidíme? Áno na zrkadle. Máme vetu, ktorá hovorí, že so vzdialenosťou ku zrkadlu sa mení intenzita odrazeného svetla na druhú menej.
Takže čo sa deje pri zrode fotónu? Má polovičnú energiu, a prečo? Lebo ten kruh je vlna a ešte ho treba rozpoliť. Teda pri cca 0.65J je to 0.17m2 Prečo nie teda polovica? Lebo simulácia potvrdila nielen Schroedingera, ale aj Einsteinovu kontrakciu dĺžok. A ako to teda kmitá? No polovične/dvojnásobne, lebo nie je to kruh, ale sin(x) polkruh.
Celá simulácia vypadá a môžete si ju pauzovať: https://hrubos.tech/simulacie/zverokruh.mp4
Všimli ste si aj počiatočný a konečný moment? Čo potvrdzuje? Napoviem: Počiatok Energia 5J, koniec plocha 80m2. Koľko je sqrt(80)? == 4sqrt(5) Prečo? Nesmeruje nás toto na mc^2 pre energie svetla? Počiatok a koniec:


A prečo hovorím o Schroedingerovej rovnici a Quantách? Toto je ten vtip za 1 na skúške: Čo sa stane pri Energii 0.003J? Nie náhodou to, čo tvrdí Ervín a to že prestáva platiť Einstein?
Teda? Ak má kvantový stav 0J stáva sa okamžitým a dochádza ku kvantovému previazaniu? A aká je maximálna rýchlosť kvanta? Takáto:

Ba čo viac, kde vidíme konštantu 1.3? Nie to náhodou Snellov zákon? ^^^
Simulácia je ako vždy z mojich zámyslov a príkazov pre GPT: Ďakujem:
##############################################################
# water_string_sim.jl
#
# Plastová gulička na šnúrke rotujúca po hladine vody
# Realtime simulácia v Julia + GLMakie
#
# Časť 1
##############################################################
##############################################################
# Inštalácia balíkov (iba prvé spustenie)
##############################################################
import Pkg
packages = [
"GLMakie",
"GeometryBasics",
"Colors",
"LinearAlgebra",
"Statistics"
]
for p in packages
try
Base.require(Symbol(p))
catch
println("Installing $p")
Pkg.add(p)
end
end
using GLMakie
using GeometryBasics
using Colors
using LinearAlgebra
using Statistics
##############################################################
# Parametre simulácie
##############################################################
const FPS = 60
const dt = 30/FPS
const RopeLength = 1.0
const BallRadius = 0.04
const BallMass = 0.15
const WaterRadius = 2.8
const WaveSpeed = 0.65
const WaveDecay = 0.985
const FrictionLimit = 0.55
const BounceEnergyLoss = 0.75
##############################################################
# Rotácia
##############################################################
ω0 = 8.0
ω = Observable(ω0)
θ = Observable(0.0)
##############################################################
# Energia
##############################################################
kineticEnergy = Observable(0.0)
##############################################################
# Súčet plôch kruhov
##############################################################
totalArea = Observable(0.0)
##############################################################
# Počet kruhov
##############################################################
waveCount = Observable(0)
##############################################################
# Typ jednej vlny
##############################################################
mutable struct Wave
x::Float64
y::Float64
radius::Float64
amplitude::Float64
end
##############################################################
# Pole všetkých vĺn
##############################################################
waves = Wave[]
##############################################################
# Náhodný stick-slip model
##############################################################
function friction_event(speed)
p = clamp(
1.0 - speed/6,
0,
0.95
)
rand() < p
end
##############################################################
# Aktualizácia energie
##############################################################
function update_energy!()
v = RopeLength * ω[]
kineticEnergy[] =
0.5 *
BallMass *
v^2
end
##############################################################
# Aktualizácia plôch
##############################################################
function update_total_area!()
s = 0.0
for w in waves
s += π * w.radius^2
end
totalArea[] = s
end
##############################################################
# Pridanie novej vlny
##############################################################
function add_wave!(x,y)
push!(waves,
Wave(
x,
y,
0.02,
1.0
)
)
waveCount[] = length(waves)
end
##############################################################
# Posun všetkých kruhov
##############################################################
function update_waves!()
keep = Wave[]
for w in waves
w.radius += WaveSpeed*dt
w.amplitude *= WaveDecay
if w.amplitude > 0.02
push!(keep,w)
end
end
empty!(waves)
append!(waves,keep)
waveCount[] = length(waves)
update_total_area!()
end
##############################################################
# Makie Figure
##############################################################
fig = Figure(
resolution = (1400,800),
fontsize = 22
)
ax = Axis(
fig[1,1],
aspect = DataAspect(),
title = "Rotácia plastovej guličky po hladine"
)
limits!(
ax,
-WaterRadius,
WaterRadius,
-WaterRadius,
WaterRadius
)
limits!(ax,-1.4,1.4,-1.4,1.4)
##############################################################
# Pravý informačný panel
##############################################################
panel = GridLayout()
fig[1,2] = panel
colsize!(fig.layout, 2, Fixed(220))
Label(
panel[1,1],
lift(x->"Kinetická energia\n$(round(x,digits=3)) J",
kineticEnergy)
)
Label(
panel[2,1],
lift(x->"Súčet plôch kruhov\n$(round(x,digits=3)) m²",
totalArea)
)
Label(
panel[3,1],
lift(x->"Počet kruhov\n$x",
waveCount)
)
Label(
panel[4,1],
lift(x->"ω = $(round(x,digits=2)) rad/s",
ω)
)
##############################################################
# Hladina vody
##############################################################
waterCircle = Circle(Point2f(0,0),WaterRadius)
poly!(
ax,
waterCircle,
color=RGBAf(0.82,0.93,1,0.45)
)
##############################################################
# ČASŤ 2
# Animácia, kreslenie guličky, šnúrky a kruhov
##############################################################
##############################################################
# Pozícia guličky
##############################################################
ballPos = Observable(Point2f(
RopeLength*cos(θ[]),
RopeLength*sin(θ[])
))
##############################################################
# Stred rotácie
##############################################################
center = Point2f(0,0)
##############################################################
# Šnúrka
##############################################################
ropeLine = Observable([
center,
ballPos[]
])
lines!(
ax,
ropeLine,
linewidth = 3,
color = :black
)
##############################################################
# Gulička
##############################################################
ballPlot = scatter!(
ax,
lift(p->[p], ballPos),
markersize = 22,
color = RGBf(1.0,0.25,0.25)
)
##############################################################
# Stopa pohybu
##############################################################
trail = Point2f[]
trailObs = Observable(copy(trail))
lines!(
ax,
trailObs,
linewidth = 1.5,
color = RGBAf(0.8,0.2,0.2,0.35)
)
const TrailLength = 500
##############################################################
# Grafické objekty kruhov
##############################################################
wavePlots = Poly[]
##############################################################
# Odstránenie starých kruhov z osi
##############################################################
function clear_waveplots!()
for p in wavePlots
delete!(ax.scene, p)
end
empty!(wavePlots)
end
##############################################################
# Vykreslenie všetkých kruhov
##############################################################
function redraw_waves!()
clear_waveplots!()
for w in waves
c = Circle(
Point2f(w.x,w.y),
w.radius
)
plt = poly!(
ax,
c,
color = RGBAf(
0,
0.3,
1,
0.03*w.amplitude
),
strokecolor = RGBAf(
0,
0,
1,
w.amplitude
),
strokewidth = 2
)
push!(wavePlots,plt)
end
end
##############################################################
# Spomaľovanie rotácie
##############################################################
const AngularDeceleration = 0.015
##############################################################
# Poskok
##############################################################
bounceHeight = 0.0
##############################################################
# Hlavná aktualizácia simulácie
##############################################################
function simulation_step!()
##########################################################
# spomaľovanie
##########################################################
ω[] = max(
0,
ω[] - AngularDeceleration
)
##########################################################
# nový uhol
##########################################################
θ[] += ω[] * dt
##########################################################
# nová poloha
##########################################################
x = RopeLength*cos(θ[])
y = RopeLength*sin(θ[])
##########################################################
# stick-slip
##########################################################
speed = RopeLength * ω[]
if friction_event(speed)
add_wave!(x,y)
bounceHeight =
rand()*0.02
ω[] *= BounceEnergyLoss
end
##########################################################
# aktualizácia guličky
##########################################################
ballPos[] = Point2f(
x,
y
)
ropeLine[] = [
center,
ballPos[]
]
##########################################################
# stopa
##########################################################
push!(
trail,
ballPos[]
)
if length(trail) > TrailLength
popfirst!(trail)
end
trailObs[] = copy(trail)
##########################################################
# energia
##########################################################
update_energy!()
##########################################################
# vlny
##########################################################
update_waves!()
redraw_waves!()
end
##############################################################
# Úvodná energia
##############################################################
update_energy!()
##############################################################
# Text v strede
##############################################################
text!(
ax,
"STRED",
position=(0,0),
align=(:center,:center),
fontsize=18,
color=:black
)
##############################################################
# Animácia
##############################################################
display(fig)
posi=0
length1=300
record(fig, "zverokruh.mp4", 1:length1; framerate=5) do frame
simulation_step!()
global posi+=1
println("Rendered out of",length1," => ",posi)
end
#while true
# simulation_step!()
# sleep(dt)
#end

Comments “Čo nám mimozemšťania chceli povedať kruhmi v obilí alebo Schroedingerova rovnica inak”