diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2010-12-06 15:39:31 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2010-12-06 15:39:31 +0000 |
| commit | 52fcab2607d499c642bd9d382e21685b795fd5c5 (patch) | |
| tree | edd258b3d317c7a9f53a98fc74a44b054c5d7a46 | |
| parent | 2da2153c77c9a61828ab3c2fd3f346bad1182fe5 (diff) | |
Fixed 'Fractal' demo. Tree's were not random at all.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7961 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | test/fractals.cxx | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/test/fractals.cxx b/test/fractals.cxx index 4892d6180..2bf32ca44 100644 --- a/test/fractals.cxx +++ b/test/fractals.cxx @@ -312,7 +312,7 @@ long TreeSeed; /* for srand48 - remember so we can build "same tree" /* * recursive tree drawing thing, fleshed out from class notes pseudocode */ -void FractalTree(int level) +void FractalTree(int level, long level_seed) { long savedseed; /* need to save seeds while building tree too */ @@ -328,26 +328,25 @@ void FractalTree(int level) glTranslatef(0, 1, 0); glScalef(0.7, 0.7, 0.7); - savedseed = (long)((ulong)drand48()*ULONG_MAX); + srand48(level_seed+1); glPushMatrix(); glRotatef(110 + drand48()*40, 0, 1, 0); glRotatef(30 + drand48()*20, 0, 0, 1); - FractalTree(level + 1); + FractalTree(level + 1, level_seed+4); glPopMatrix(); - srand48(savedseed); - savedseed = (long)((ulong)drand48()*ULONG_MAX); + srand48(level_seed+2); glPushMatrix(); glRotatef(-130 + drand48()*40, 0, 1, 0); glRotatef(30 + drand48()*20, 0, 0, 1); - FractalTree(level + 1); + FractalTree(level + 1, level_seed+5); glPopMatrix(); - srand48(savedseed); + srand48(level_seed+3); glPushMatrix(); glRotatef(-20 + drand48()*40, 0, 1, 0); glRotatef(30 + drand48()*20, 0, 0, 1); - FractalTree(level + 1); + FractalTree(level + 1, level_seed+6); glPopMatrix(); glPopMatrix(); @@ -421,7 +420,7 @@ void CreateTree(void) glPushAttrib(GL_LIGHTING_BIT); glCallList(TREE_MAT); glTranslatef(0, -1, 0); - FractalTree(0); + FractalTree(0, TreeSeed); glPopAttrib(); glPopMatrix(); glEndList(); |
