Mercurial > repos > public > sbplib
annotate +anim/animate.m @ 79:4cd77c7bdcaf
Fixed bug in anim.animate for starting times != 0.
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Wed, 25 Nov 2015 18:32:29 +0100 |
| parents | 1edee9e1ea41 |
| children | 6ec2248b83c4 |
| rev | line source |
|---|---|
| 0 | 1 % Calls F(t) repeatedly |
| 2 % Should there be a Fsetup and a F, two function, to allow creating a plot and then updating it? | |
| 3 % F takes the time to generate the frame for and returns the actual time for the generated frame. | |
| 4 % t = F(t_r) is a function that paints a frame for time t. t is the closest time <=t_r | |
| 5 % it will be called for increasnig t. | |
| 6 | |
| 7 %Todo: make it catch up and produce warnings if it lags behind? Instead of just requesting the next target time | |
|
79
4cd77c7bdcaf
Fixed bug in anim.animate for starting times != 0.
Jonatan Werpers <jonatan@werpers.com>
parents:
71
diff
changeset
|
8 function animate(F, tstart, tend, time_modifier , frame_rate) |
| 0 | 9 if ~exist('time_modifier') |
| 10 time_modifier = 1; | |
| 11 end | |
| 12 | |
| 13 if ~exist('frame_rate') | |
| 14 frame_rate = 30; | |
| 15 end | |
| 16 | |
| 17 frame_time = 1/frame_rate; | |
| 18 dt = frame_time*time_modifier; | |
| 19 | |
| 20 animation_start = tic(); | |
|
79
4cd77c7bdcaf
Fixed bug in anim.animate for starting times != 0.
Jonatan Werpers <jonatan@werpers.com>
parents:
71
diff
changeset
|
21 t = F(tstart); |
| 0 | 22 while t < tend |
| 23 t = F(t + dt); | |
|
79
4cd77c7bdcaf
Fixed bug in anim.animate for starting times != 0.
Jonatan Werpers <jonatan@werpers.com>
parents:
71
diff
changeset
|
24 t_left = (t-tstart)/time_modifier-toc(animation_start); |
| 0 | 25 pause(t_left) |
| 26 end | |
| 27 time_to_animate = toc(animation_start); | |
| 28 expected_time = tend/time_modifier; | |
|
71
1edee9e1ea41
Updated printing stuff for animation functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
29 |
|
1edee9e1ea41
Updated printing stuff for animation functions.
Jonatan Werpers <jonatan@werpers.com>
parents:
0
diff
changeset
|
30 fprintf('\n'); |
| 0 | 31 fprintf('Time to animate: %.3f\n', time_to_animate) |
| 32 fprintf('Expected time : %.3f\n', expected_time) | |
| 33 end |
