A tak vidíme, že elypsa zeme voči slnku sa vychýli o cca 20% podľa dodanej energie na solax paneli z cloud dát ^^^ Ono, ak by sa nám vo vesmíre pokazil gyroskop, nepotrebujeme ho, metamorf sajborga ihneď po zobudení z kryo spánku prikáže vytasiť solárne panely lode a určiť trajektóriu okolo hmotného telesa ;)
Samozrejme všimnite si okrem elypsy aj špirálu, veď v apogeu a perigeu sa musia s inými pohybmi kolmými na rovinu skladať bočné odstredivky:



using Pkg
Pkg.add("Plots")
Pkg.add("Statistics")
Pkg.add("FFMPEG") # dôležité pre mp4
using Plots
using Statistics
# Dáta
x = [23.75,23.48,23.20,22.90,22.62,22.49,22.31,22.04,21.74,21.46,
21.17,20.90,20.76,20.56,20.28,19.99,19.70,19.41,19.09,18.80]
y = [34.16,34.12,34.09,34.06,34.03,34.01,33.98,33.95,33.93,33.74,
33.55,33.36,33.28,33.06,32.75,32.47,32.19,31.92,31.65,31.35]
n = length(x)
# Referencia
y_ref = pi/4 + 20.77
dy = y .- y_ref
# Uhol
θ = range(0, 2π, length=n+1)[1:end-1]
# Normalizácia odchýlky
r = 1 .+ dy ./ maximum(abs.(dy))
# Súradnice
xs = r .* cos.(θ)
ys = r .* sin.(θ)
# Farby
colors = [dy[i] > 0 ? :red : :blue for i in 1:n]
# Referenčný kruh
circle_x = cos.(θ)
circle_y = sin.(θ)
# 🎬 Animácia
anim = @animate for k in 1:n
plot(circle_x, circle_y,
label="referenčný kruh",
xlim=(-2,2), ylim=(-2,2),
legend=:topright
)
scatter!(xs[1:k], ys[1:k],
color=colors[1:k],
markersize=6,
label="body"
)
for i in 1:k
annotate!(xs[i], ys[i], text(round(dy[i], digits=2), 8))
end
end
# 💾 Uloženie do MP4
mp4(anim, "vychylky.gif", fps=5)
println("Video uložené ako vychylky.mp4")
println("Stlač Enter pre ukončenie...")
readline()
using Pkg
Pkg.add("Plots")
Pkg.add("Statistics")
Pkg.add("FFMPEG")
using Plots
using Statistics
# Dáta
x = [23.75,23.48,23.20,22.90,22.62,22.49,22.31,22.04,21.74,21.46,
21.17,20.90,20.76,20.56,20.28,19.99,19.70,19.41,19.09,18.80]
y = [34.16,34.12,34.09,34.06,34.03,34.01,33.98,33.95,33.93,33.74,
33.55,33.36,33.28,33.06,32.75,32.47,32.19,31.92,31.65,31.35]
n = length(x)
# Referencia
y_ref = pi/4 + 20.77
dy = y .- y_ref
# Uhol
θ = range(0, 2π, length=n+1)[1:end-1]
# Normalizácia
norm = maximum(abs.(dy))
r = 1 .+ dy ./ norm
# Súradnice bodov
xs = r .* cos.(θ)
ys = r .* sin.(θ)
# Referenčný kruh
circle_x = cos.(θ)
circle_y = sin.(θ)
# Farby
colors = [dy[i] > 0 ? :red : :blue for i in 1:n]
# 🎬 Animácia
anim = @animate for frame in 1:60
plot(circle_x, circle_y,
label="referenčný kruh",
xlim=(-2,2), ylim=(-2,2),
legend=false
)
for i in 1:n
# Pulzovanie (sinus podľa času + veľkosť odchýlky)
pulse = 6 + 6 * abs(dy[i])/norm * abs(sin(0.2 * frame))
# Referenčný bod na kruhu
x0 = cos(θ[i])
y0 = sin(θ[i])
# Spojnica
plot!([x0, xs[i]], [y0, ys[i]],
linewidth=1,
color=:gray,
label=false
)
# Bod
scatter!([xs[i]], [ys[i]],
color=colors[i],
markersize=pulse,
label=false
)
# Text (odchýlka)
annotate!(xs[i], ys[i],
text(round(dy[i], digits=2), 8)
)
end
end
# Uloženie
mp4(anim, "vychylky_pulzovanie.gif", fps=10)
println("Hotovo: vychylky_pulzovanie.mp4")
println("Stlač Enter pre ukončenie...")
readline()
using Pkg
Pkg.add("Plots")
Pkg.add("Statistics")
Pkg.add("FFMPEG")
using Plots
using Statistics
# Dáta
x = [23.75,23.48,23.20,22.90,22.62,22.49,22.31,22.04,21.74,21.46,
21.17,20.90,20.76,20.56,20.28,19.99,19.70,19.41,19.09,18.80]
y = [34.16,34.12,34.09,34.06,34.03,34.01,33.98,33.95,33.93,33.74,
33.55,33.36,33.28,33.06,32.75,32.47,32.19,31.92,31.65,31.35]
n = length(x)
# Referencia
y_ref = pi/4 + 20.77
dy = y .- y_ref
# Uhol
θ = range(0, 2π, length=n+1)[1:end-1]
# Normalizácia
norm = maximum(abs.(dy))
r = 1 .+ dy ./ norm
# Súradnice
xs = r .* cos.(θ)
ys = r .* sin.(θ)
# Referenčný kruh
circle_x = cos.(θ)
circle_y = sin.(θ)
# Farby
colors = [dy[i] > 0 ? :red : :blue for i in 1:n]
# 🎬 Animácia
anim = @animate for frame in 1:80
plot(circle_x, circle_y,
xlim=(-2,2), ylim=(-2,2),
legend=false
)
for i in 1:n
# vek bodu (ako dávno bol "aktivovaný")
age = frame - i*3
if age > 0
# fading (0 → neviditeľný, 1 → plný)
alpha = clamp(1 - age/30, 0, 1)
# pulzovanie
pulse = 6 + 6 * abs(dy[i])/norm * abs(sin(0.2 * frame))
# referenčný bod
x0 = cos(θ[i])
y0 = sin(θ[i])
# spojnice (tiež fading)
plot!([x0, xs[i]], [y0, ys[i]],
color=:gray,
alpha=alpha,
linewidth=1
)
# bod
scatter!([xs[i]], [ys[i]],
color=colors[i],
markersize=pulse,
alpha=alpha
)
# text (mizne tiež)
if alpha > 0.2
annotate!(xs[i], ys[i],
text(round(dy[i], digits=2), 8)
)
end
end
end
end
# uloženie
mp4(anim, "vychylky_fading.gif", fps=10)
println("Hotovo: vychylky_fading.gif")
println("Stlač Enter pre ukončenie...")
readline()
using Pkg
Pkg.add("Plots")
Pkg.add("Statistics")
Pkg.add("FFMPEG")
using Plots
using Statistics
# Dáta
x = [23.75,23.48,23.20,22.90,22.62,22.49,22.31,22.04,21.74,21.46,
21.17,20.90,20.76,20.56,20.28,19.99,19.70,19.41,19.09,18.80]
y = [34.16,34.12,34.09,34.06,34.03,34.01,33.98,33.95,33.93,33.74,
33.55,33.36,33.28,33.06,32.75,32.47,32.19,31.92,31.65,31.35]
n = length(x)
# Referencia
y_ref = pi/4 + 20.77
dy = y .- y_ref
# Uhol
θ = range(0, 2π, length=n+1)[1:end-1]
# Normalizácia
norm = maximum(abs.(dy))
r = 1 .+ dy ./ norm
# Súradnice bodov
xs = r .* cos.(θ)
ys = r .* sin.(θ)
# Referenčný kruh
circle_x = cos.(θ)
circle_y = sin.(θ)
# Graf
plot(circle_x, circle_y,
aspect_ratio=:equal,
legend=false,
xlim=(-2,2),
ylim=(-2,2),
title="Charka solax ako ide slnko počas dňa"
)
# spojnice + text
for i in 1:n
# referenčný bod na kruhu
x0 = cos(θ[i])
y0 = sin(θ[i])
# spojnice
plot!([x0, xs[i]], [y0, ys[i]],
color=:gray,
linewidth=1,
alpha=0.6
)
# text
annotate!(xs[i], ys[i],
text(string(round(dy[i], digits=2)), 10)
)
end
display(current())
readline()

Comments “Dokážeme z výkonov solárneho panelu určiť po akej dráhe sa pohybuje zem voči slnku? Poďme na to:”