add functionality to add concentration at clickend spots dynamically

pull/3/head
Nikola Sebastian Munder 2025-06-12 18:22:55 +02:00
parent 2fc80227ca
commit f39c85a0ad
1 changed files with 23 additions and 0 deletions

View File

@ -76,6 +76,8 @@ function build_ui(U, V, Du, Dv, F, k, params_obs, heat_obs)
run_label = Observable{String}("Run")
stepsize = Observable(30)
spoint = select_point(ax.scene)
# # Controls
fig[2, 1] = buttongrid = GridLayout(ax.scene, tellwidth=false)
btn_step = Button(buttongrid[1, 1], width=50, label="Step")
@ -130,6 +132,27 @@ function build_ui(U, V, Du, Dv, F, k, params_obs, heat_obs)
reset!(U, V, heat_obs)
end
on(spoint) do pt
r = 5
if pt === nothing
return
end
x, y = pt
println("params_obs[].N, ", params_obs[].N)
i, j = coord_to_index(x, y, params_obs[].N)
# get corners of square that will get filled with concentration
imin = max(i - r, 1)
imax = min(i + r, params_obs[].N)
jmin = max(j - r, 1)
jmax = min(j + r, params_obs[].N)
# set disbalanced concentration of U and V
U[imin:imax, jmin:jmax] .= 0.5
V[imin:imax, jmin:jmax] .= 0.25
heat_obs[] = copy(U)
end
return fig
end