cannot use clock() for realtime graphical simulations
- From: edward hage <edha xs4all nl>
- To: gtk-list gnome org
- Subject: cannot use clock() for realtime graphical simulations
- Date: Sat, 14 Aug 2004 14:03:57 +0200
Hello,
I have a simulation running in a drawing_area, I start this simulation with
gtk_timeout_add (50, Repaint, da).
gint Repaint (gpointer data)
{
GtkWidget *da = (GtkWidget *) data;
GdkRectangle update_rect;
static double t = 0.0;
etc. etc. define graphics in pixmap and then repaint the window with the pixmap.
}
To get the timing I have defined a static double t = 0.0;
which I let count with t +=t + 0.050;
Then I can look up the correct value in a table for the given time.
This works okay, well the block move but not exactly at the right time. It does not work
very accurate because I assume the function is called every 50 ms, but when I move my
mouse around then that can not be quaranteed. It slows down the simulation.
My idea was to overcome this problem by calling clock() (using <time.h>) in Repaint. This
does not work properly. The time seems to freeze, and only when I move my mouse around or
drag the window the time is updated.
Why does clock() not work properly in this case and how can I overcome this problem ? Does
anybody have experience with graphical simulations?
The source looks like this (inside Repaint)
static double t = 0;
static double tstart;
ClockResult = clock();
if (t==0) tstart = (double) ClockResult / (double) CLOCKS_PER_SEC;
t = (double) ClockResult / (double) CLOCKS_PER_SEC - tstart + 0.00001;
Thank you in advance for your help,
Edward
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]