diff options
Diffstat (limited to 'packages/noncvs/windows/extra/Gem/examples/13.recursion/03.recursive_spiral.pd')
-rw-r--r-- | packages/noncvs/windows/extra/Gem/examples/13.recursion/03.recursive_spiral.pd | 142 |
1 files changed, 71 insertions, 71 deletions
diff --git a/packages/noncvs/windows/extra/Gem/examples/13.recursion/03.recursive_spiral.pd b/packages/noncvs/windows/extra/Gem/examples/13.recursion/03.recursive_spiral.pd index f889aedf..ebb4f271 100644 --- a/packages/noncvs/windows/extra/Gem/examples/13.recursion/03.recursive_spiral.pd +++ b/packages/noncvs/windows/extra/Gem/examples/13.recursion/03.recursive_spiral.pd @@ -1,71 +1,71 @@ -#N canvas 3 2 602 516 10; -#X obj 14 66 gemwin; -#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 -; -#X msg 48 10 create; -#X msg 55 33 destroy; -#X obj 14 93 gemhead; -#X obj 14 213 t a a; -#X obj 59 213 circle; -#X obj 14 283 scale 0.7; -#X obj 14 243 rotate 45 0 0 1; -#X obj 14 263 translate 2 0 1 0; -#X text 170 17 A tutorial on recursion in Gem; -#X text 170 37 (GPL) 2007 Claude Heiland-Allen <claudiusmaximus@goto10.org> -; -#X text 170 77 A common idiom in Gem is to use the [repeat] object -found in the Zexy library \, to generate multiple copies of the same -object. Let's try using it to make our spiral.; -#X obj 14 183 separator; -#X obj 24 163 r \$0-recurse; -#X obj 68 133 v \$0-depth; -#X obj 14 113 t a b; -#X obj 68 113 f 16; -#X floatatom 91 96 5 0 0 2 max-depth - -; -#X obj 36 433 s \$0-recurse; -#X obj 14 313 t b a b; -#X obj 99 343 v \$0-depth; -#X obj 99 363 - 1; -#X obj 99 383 max 0; -#X obj 99 403 v \$0-depth; -#X obj 36 413 spigot; -#X obj 14 343 v \$0-depth; -#X obj 14 383 v \$0-depth; -#X obj 14 363 + 1; -#X text 170 127 First \, we need to limit the depth of the recursion -\, to avoid the dreaded "stack overflow" errors from both Pd and OpenGL. -We set the maximum depth before doing anything else in the Gem chain. -; -#X text 170 187 Next \, we draw the circle and set up the transformations -for the recursive call.; -#X text 170 227 Finally \, we check that we are within the allowed -depth \, and recurse (after decrementing the maximum depth).; -#X text 170 267 At first glance \, this recursive solution is much -less elegant than the iterative solution with [repeat] \, and it is --- for non-branching structures. The power of recursion comes from -the ease with which branching structures can be created.; -#X connect 1 0 0 0; -#X connect 2 0 0 0; -#X connect 3 0 0 0; -#X connect 4 0 16 0; -#X connect 5 0 8 0; -#X connect 5 1 6 0; -#X connect 7 0 20 0; -#X connect 8 0 9 0; -#X connect 9 0 7 0; -#X connect 13 0 5 0; -#X connect 14 0 13 0; -#X connect 16 0 13 0; -#X connect 16 1 17 0; -#X connect 17 0 15 0; -#X connect 18 0 17 1; -#X connect 20 0 26 0; -#X connect 20 1 25 0; -#X connect 20 2 21 0; -#X connect 21 0 22 0; -#X connect 22 0 23 0; -#X connect 23 0 24 0; -#X connect 23 0 25 1; -#X connect 25 0 19 0; -#X connect 26 0 28 0; -#X connect 28 0 27 0; +#N canvas 3 2 602 516 10;
+#X obj 14 66 gemwin;
+#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
+;
+#X msg 48 10 create;
+#X msg 55 33 destroy;
+#X obj 14 93 gemhead;
+#X obj 14 213 t a a;
+#X obj 59 213 circle;
+#X obj 14 283 scale 0.7;
+#X obj 14 243 rotate 45 0 0 1;
+#X obj 14 263 translate 2 0 1 0;
+#X text 170 17 A tutorial on recursion in Gem;
+#X text 170 37 (GPL) 2007 Claude Heiland-Allen <claudiusmaximus@goto10.org>
+;
+#X text 170 77 A common idiom in Gem is to use the [repeat] object
+found in the Zexy library \, to generate multiple copies of the same
+object. Let's try using it to make our spiral.;
+#X obj 14 183 separator;
+#X obj 24 163 r \$0-recurse;
+#X obj 68 133 v \$0-depth;
+#X obj 14 113 t a b;
+#X obj 68 113 f 16;
+#X floatatom 91 96 5 0 0 2 max-depth - -;
+#X obj 36 433 s \$0-recurse;
+#X obj 14 313 t b a b;
+#X obj 99 343 v \$0-depth;
+#X obj 99 363 - 1;
+#X obj 99 383 max 0;
+#X obj 99 403 v \$0-depth;
+#X obj 36 413 spigot;
+#X obj 14 343 v \$0-depth;
+#X obj 14 383 v \$0-depth;
+#X obj 14 363 + 1;
+#X text 170 127 First \, we need to limit the depth of the recursion
+\, to avoid the dreaded "stack overflow" errors from both Pd and OpenGL.
+We set the maximum depth before doing anything else in the Gem chain.
+;
+#X text 170 187 Next \, we draw the circle and set up the transformations
+for the recursive call.;
+#X text 170 227 Finally \, we check that we are within the allowed
+depth \, and recurse (after decrementing the maximum depth).;
+#X text 170 267 At first glance \, this recursive solution is much
+less elegant than the iterative solution with [repeat] \, and it is
+-- for non-branching structures. The power of recursion comes from
+the ease with which branching structures can be created.;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 16 0;
+#X connect 5 0 8 0;
+#X connect 5 1 6 0;
+#X connect 7 0 20 0;
+#X connect 8 0 9 0;
+#X connect 9 0 7 0;
+#X connect 13 0 5 0;
+#X connect 14 0 13 0;
+#X connect 16 0 13 0;
+#X connect 16 1 17 0;
+#X connect 17 0 15 0;
+#X connect 18 0 17 1;
+#X connect 20 0 26 0;
+#X connect 20 1 25 0;
+#X connect 20 2 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 0 25 1;
+#X connect 25 0 19 0;
+#X connect 26 0 28 0;
+#X connect 28 0 27 0;
|