// // pbSpiralize3 script for Apophysis // (c)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 := 10; // scale delta of each transform d := -0.1; // weight delta of each transform w := 0.2; // Ask user for above parameters InputQuery('Script parameter question', 'Number of additional transforms :', n); InputQuery('Script parameter question', 'Transform rotation angle :', a); // 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; 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 // Make a first transform a string-like // and set it to linear SetActiveTransform(0); with Transform do begin c := 0.05 d := 0.05 Weight := 0.1; for i := 0 To NVARS - 1 do begin Variation[i] := 0; end; Variation[0] := 1; end; Rotate(random*360); // 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;