// // pbSpiralize2 script for Apophysis // (c)2004-2005 by Piotr Borys // utak3r (at) o2 (dot) pl // // Feel free to use it for your own. // If you will make some modifications, // or some very cool stuff with it, // don't hesitate dropping me a note :) // // number of additional transforms n := 3; // angle to rotate each transform a := 5; // scale delta of each transform d := -0.15; // weight delta of each transform w := 0.2; // position perturbation scale p := 0.03; // Ask user for above parameters InputQuery('Script parameter question', 'Number of additional transforms :', n); InputQuery('Script parameter question', 'Transform rotation angle :', a); InputQuery('Script parameter question', 'Change of scale for each transform :', d); InputQuery('Script parameter question', 'Change of weight for each transform :', w); InputQuery('Script parameter question', 'Transform position perturbation scale :', p); // Take care of proper transforms count if n+Transforms > NXFORMS then n := NXFORMS-Transforms; // // Let's go! // // Delete old spiralized flames DeleteFile(INSTALLPATH + 'pbSpiralized.flame'); for j := 0 to FileCount - 1 do begin LoadFlame(j); ShowStatus('Spiralizing ' + IntToStr(j + 1) + ' of ' + IntToSTr(FileCount)); // Delete transforms that we don't need if Transforms > 3 then begin for i := 3 to Transforms-1 do begin SetActiveTransform(i); DeleteTransform; end; end; SetActiveTransform(0); // Create some new transforms s := 1; for i := Transforms to Transforms+n-1 do begin AddTransform; Rotate(i * a); s := s + d; Scale(s); if i mod 2 > 0 then Transform.Symmetry := 1; else Transform.Symmetry := -1; Transform.e := Transform.e + random()*2*p-random()*p; Transform.f := Transform.f + random()*2*p-random()*p; end; // Set colors and weights for each transform for i := 0 to Transforms - 1 do begin SetActiveTransform(i); Transform.Color := i/Transforms; Transform.Weight := (1/Transforms) * i * w; end // Do some cleaning stuff Flame.Name := 'pbs-' + Flame.Name; CalculateBounds; ResetLocation := true; SaveFlame(INSTALLPATH + 'pbSpiralized.flame'); end; // And voila! Here it is! Enjoy :) ListFile(INSTALLPATH + 'pbSpiralized.flame'); UpdateFlame := False;