/*
- * Copyright (c) 2004, 2007 Steve Sundstrom
+ * Copyright (c) 2004-2009 Steve Sundstrom
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
#define WAVES 6
#define STRETCHES 8
-const double PI = 3.1415926535;
-
struct lineStruct {
unsigned int x, y, len, obj, color, ndol;
int deo;
l+=1;
switch(wave) {
case 0: /* cos wave*/
- return((int)(cos((double)x*PI/l)*h));
+ return((int)(cos((double)x*M_PI/l)*h));
case 1: /* double wave*/
case 2: /* double wave*/
- return((int)(cos((double)x*PI/l)*h)+(int)(sin((double)x*PI/l/st->cs1[1])*h));
+ return((int)(cos((double)x*M_PI/l)*h)+(int)(sin((double)x*M_PI/l/st->cs1[1])*h));
case 3: /* zig zag */
return(abs((x%(l*2)-l))*h/l);
case 4: /* giant zig zag */
x+=_wave(st,st->gridy-y,st->gridy/(1+st->cs1[n]),st->gridy,0);
break;
case 4: /* U curves */
- x+=_wave(st,y,st->cs1[n]*st->csw[n]/2,st->gridy*2/PI,0);
+ x+=_wave(st,y,st->cs1[n]*st->csw[n]/2,st->gridy*2/M_PI,0);
break;
case 5:
- x-=_wave(st,y,st->cs1[n]*st->csw[n]/2,st->gridy*2/PI,0);
+ x-=_wave(st,y,st->cs1[n]*st->csw[n]/2,st->gridy*2/M_PI,0);
break;
}
switch(st->wsy[0]) {
y+=_wave(st,st->gridx-ox,st->gridx/(1+st->cs1[n]),st->gridx,0);
break;
case 4: /* U curves */
- y+=_wave(st,ox,st->cs1[n]*st->csw[n]/2,st->gridy*2/PI,0);
+ y+=_wave(st,ox,st->cs1[n]*st->csw[n]/2,st->gridy*2/M_PI,0);
break;
case 5:
- y-=_wave(st,ox,st->cs1[n]*st->csw[n]/2,st->gridy*2/PI,0);
+ y-=_wave(st,ox,st->cs1[n]*st->csw[n]/2,st->gridy*2/M_PI,0);
break;
}
switch(st->pattern[n]) {
values tuned for it draw the screen in a blink on Linux. Therefore we
draw 1/200th of the screen with each update and sleep, if necessary */
st->lpu = (st->dialog) ? st->li/50 : st->li/200;
+ if (!st->lpu) st->lpu = 1;
st->bi=1;
st->mode=MODE_ERASE;
}
int mse, usleep;
gettimeofday(&st->time, NULL);
- switch (st->mode) {
+
+ /* If the window is too small, do nothing, sorry! */
+ if (st->xgwa.width > 20 && st->xgwa.height > 20) {
+ switch (st->mode) {
case MODE_CREATE:
_init_screen(st);
_create_screen(st);
case MODE_DRAW:
_draw_lines(st);
break;
+ }
}
mse=_mselapsed(st);
usleep = ((!st->ii) && (st->mode==MODE_CREATE)) ? 0 :