Applied John's updated ReadConfigFile() changes to the fractals demos.

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@220 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
rkrolib 2003-10-09 16:34:23 +00:00
parent 25545149da
commit 45899e5ed9
2 changed files with 86 additions and 50 deletions

View File

@ -195,12 +195,15 @@ Special(int key, int x, int y)
glutPostRedisplay(); glutPostRedisplay();
} }
void readConfigFile ( char *fnme ) void readConfigFile ( char *fnme )
{ {
FILE *fptr = fopen ( fnme, "rt" ) ; FILE *fptr = fopen ( fnme, "rt" ) ;
int i ; int i ;
char inputline [ 256 ] ; char inputline [ 256 ] ;
if ( fptr )
{
/* Read a header line */ /* Read a header line */
fgets ( inputline, 256, fptr ) ; fgets ( inputline, 256, fptr ) ;
@ -230,13 +233,28 @@ void readConfigFile ( char *fnme )
for ( i = 0; i < num_trans; i++ ) for ( i = 0; i < num_trans; i++ )
{ {
double m00, m01, m10, m11 ; /* Matrix "I" minus "A" */
double determ ; /* Determinant of this matrix */
/* Read an affine transformation definition */ /* Read an affine transformation definition */
fgets ( inputline, 256, fptr ) ; fgets ( inputline, 256, fptr ) ;
sscanf ( inputline, "%lf %lf %lf %lf %lf %lf", &affine[i].a00, &affine[i].a01, sscanf ( inputline, "%lf %lf %lf %lf %lf %lf", &affine[i].a00, &affine[i].a01,
&affine[i].a10, &affine[i].a11, &affine[i].b0, &affine[i].b1 ) ; &affine[i].a10, &affine[i].a11, &affine[i].b0, &affine[i].b1 ) ;
}
}
else /* No data file, set a default */
{
printf ( "ERROR opening file <%s>\n", fnme ) ;
strcpy ( window_title, "Cantor Dust" ) ;
num_trans = 2 ;
affine = (AffineTrans *)malloc ( num_trans * sizeof(AffineTrans) ) ;
affine[0].a00 = 0.25 ; affine[0].a01 = 0.00 ; affine[0].a10 = 0.00 ; affine[0].a11 = 0.25 ;
affine[0].b0 = 0.0 ; affine[0].b1 = 0.0 ;
affine[1].a00 = 0.25 ; affine[1].a01 = 0.00 ; affine[1].a10 = 0.00 ; affine[1].a11 = 0.25 ;
affine[1].b0 = 0.5 ; affine[1].b1 = 0.0 ;
}
for ( i = 0; i < num_trans; i++ )
{
double m00, m01, m10, m11 ; /* Matrix "I" minus "A" */
double determ ; /* Determinant of this matrix */
/* Calculate the stationary point */ /* Calculate the stationary point */

View File

@ -186,12 +186,15 @@ Special(int key, int x, int y)
glutPostRedisplay(); glutPostRedisplay();
} }
void readConfigFile ( char *fnme ) void readConfigFile ( char *fnme )
{ {
FILE *fptr = fopen ( fnme, "rt" ) ; FILE *fptr = fopen ( fnme, "rt" ) ;
int i ; int i ;
char inputline [ 256 ] ; char inputline [ 256 ] ;
if ( fptr )
{
/* Read a header line */ /* Read a header line */
fgets ( inputline, 256, fptr ) ; fgets ( inputline, 256, fptr ) ;
@ -221,13 +224,28 @@ void readConfigFile ( char *fnme )
for ( i = 0; i < num_trans; i++ ) for ( i = 0; i < num_trans; i++ )
{ {
double m00, m01, m10, m11 ; /* Matrix "I" minus "A" */
double determ ; /* Determinant of this matrix */
/* Read an affine transformation definition */ /* Read an affine transformation definition */
fgets ( inputline, 256, fptr ) ; fgets ( inputline, 256, fptr ) ;
sscanf ( inputline, "%lf %lf %lf %lf %lf %lf", &affine[i].a00, &affine[i].a01, sscanf ( inputline, "%lf %lf %lf %lf %lf %lf", &affine[i].a00, &affine[i].a01,
&affine[i].a10, &affine[i].a11, &affine[i].b0, &affine[i].b1 ) ; &affine[i].a10, &affine[i].a11, &affine[i].b0, &affine[i].b1 ) ;
}
}
else /* No data file, set a default */
{
printf ( "ERROR opening file <%s>\n", fnme ) ;
strcpy ( window_title, "Cantor Dust" ) ;
num_trans = 2 ;
affine = (AffineTrans *)malloc ( num_trans * sizeof(AffineTrans) ) ;
affine[0].a00 = 0.25 ; affine[0].a01 = 0.00 ; affine[0].a10 = 0.00 ; affine[0].a11 = 0.25 ;
affine[0].b0 = 0.0 ; affine[0].b1 = 0.0 ;
affine[1].a00 = 0.25 ; affine[1].a01 = 0.00 ; affine[1].a10 = 0.00 ; affine[1].a11 = 0.25 ;
affine[1].b0 = 0.5 ; affine[1].b1 = 0.0 ;
}
for ( i = 0; i < num_trans; i++ )
{
double m00, m01, m10, m11 ; /* Matrix "I" minus "A" */
double determ ; /* Determinant of this matrix */
/* Calculate the stationary point */ /* Calculate the stationary point */