mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-16 10:14:48 +00:00
rv::som:: improved animation
This commit is contained in:
parent
f67d16b0f8
commit
0c71c3724f
@ -1384,14 +1384,27 @@ void neurondisttable(const string &name) {
|
|||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool animate = true;
|
bool animate_loop;
|
||||||
|
bool animate_once;
|
||||||
|
|
||||||
void steps() {
|
void steps() {
|
||||||
if(kohonen::animate && !kohonen::finished()) {
|
if(kohonen::animate_once && !kohonen::finished()) {
|
||||||
unsigned int t = SDL_GetTicks();
|
unsigned int t = SDL_GetTicks();
|
||||||
while(SDL_GetTicks() < t+20) kohonen::step();
|
while(SDL_GetTicks() < t+20) kohonen::step();
|
||||||
setindex(false);
|
setindex(false);
|
||||||
}
|
}
|
||||||
|
if(kohonen::animate_loop) {
|
||||||
|
ld tfrac = frac(1 - ticks * 1. / anims::period);
|
||||||
|
int t1 = tmax * tfrac;
|
||||||
|
println(hlog, "got t1 = ", t1, "/", tmax);
|
||||||
|
if(t1 > t) {
|
||||||
|
initialize_rv();
|
||||||
|
set_neuron_initial();
|
||||||
|
t = tmax;
|
||||||
|
}
|
||||||
|
while(t > t1) kohonen::step();
|
||||||
|
setindex(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void shift_color(int i) {
|
void shift_color(int i) {
|
||||||
@ -1784,7 +1797,8 @@ auto hooks4 = addHook(hooks_clearmemory, 100, clear)
|
|||||||
-> editable(0, 2, .2, "precise placement", "0 = make all visible, 1 = place ideally, n = place 1/n of the distance from center to ideal placement", 'p')
|
-> editable(0, 2, .2, "precise placement", "0 = make all visible, 1 = place ideally, n = place 1/n of the distance from center to ideal placement", 'p')
|
||||||
-> set_reaction([] { if((state & KS_NEURONS) && (state & KS_SAMPLES)) distribute_neurons(); });
|
-> set_reaction([] { if((state & KS_NEURONS) && (state & KS_SAMPLES)) distribute_neurons(); });
|
||||||
param_b(show_rings, "som_show_rings");
|
param_b(show_rings, "som_show_rings");
|
||||||
param_b(animate, "animate");
|
param_b(animate_once, "som_animate_once");
|
||||||
|
param_b(animate_loop, "som_animate_loop");
|
||||||
param_f(dispersion_precision, "som_dispersion")
|
param_f(dispersion_precision, "som_dispersion")
|
||||||
-> set_reaction([] { state &=~ KS_DISPERSION; });
|
-> set_reaction([] { state &=~ KS_DISPERSION; });
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user