home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
vol_300
/
323_01
/
example.c
< prev
next >
Wrap
Text File
|
1990-08-06
|
1KB
|
48 lines
/*
* Simple example of a program to generate a data file for a round explosion
* for EXPLOD.EXE. Use a command similar to "cc example.c" to compile, and
* the command "example >circle.dat" to run. Run EXPLOD.EXE with the command
* "explod circle.dat" to see the results.
*/
rnd (maxval)
{
# define MAX_RAND 32768 /* max value returned by rand() */
long l = (long) maxval * rand() / MAX_RAND;
return ((int) l);
}
main ()
{
# define XSIZE 200
# define YSIZE 120
int dest_x, dest_y;
int i = 0;
/* Print the file header */
printf ("# EXPLOD DATA FILE generated by example.c\n");
printf ("300 # number of points\n");
printf (" 50 # number of frames\n");
printf (" 9 # gravity\n");
printf (" 0 # wind\n");
printf (" 2 # trail length\n");
for (i=0; i<300; i++) /* loop to generate 300 points */
{
/* Find a dest coordinate inside the ellipse of size (XSIZE, YSIZE) */
while (1)
{
/* Generate a point */
dest_x = rnd (2*XSIZE) - XSIZE;
dest_y = rnd (2*YSIZE) - YSIZE;
/* Accept the point if it is within the oval */
if ((long) YSIZE * YSIZE * dest_x * dest_x +
(long) XSIZE * XSIZE * dest_y * dest_y
< (long) XSIZE * XSIZE * YSIZE * YSIZE)
break;
}
printf ("0 0 %d %d\n", dest_x, dest_y);
}
}