// // 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! // 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 CalculateBounds; ResetLocation := true;