NextFractal

Use state variables in rule expression

In this example you will learn how use state variables in rule expression.

fractal {
	// Set region margins to left=-3.0, bottom=-1.5, right=0.0, top=1.5
	// Declare state vector as [x,n,p] where x and n are built-in variables, and p is a custom variable
	orbit [<-3.0,-1.5>,<0.0,1.5>] [x,n,p] {
		// Initialize variable p
		begin {
			p = w;
		}
		// Iterate for n from 0 to 200 stopping when mod2(x) > 40
		loop [0, 200] (mod2(x) > 40) {
			// Declare orbit equation where x is a state variable and w is current point of region
			x = x * x + w;
		}
	}
	// Set background color to alpha=1, red=0, green=0, blue=0
	color [(1,0,0,0)] {
		// Initialize variables c1 and c2
		init {
			c1 = mod2(x) / 1000;
			c2 = <x>;
		}
		// Apply rule when n > 0 and re(p) >= 0 and im(p) >= 0 and set opacity to 1.0
		rule (n > 0 & re(p) >= 0 & im(p) >= 0) [1] {
			// Compute alpha component
			1,
			// Compute red component
			(1 + sin(c2 / pi)) / 2,
			// Compute green component
			(1 + sin(c2 / pi)) / 2,
			// Compute blue component
			(1 + sin(c1 / pi)) / 2
		}
		// Apply rule when n > 0 and re(p) >= 0 and im(p) < 0 and set opacity to 1.0
		rule (n > 0 & re(p) >= 0 & im(p) < 0) [1] {
			// Compute alpha component
			1,
			// Compute red component
			(1 + sin(c1 / pi)) / 2,
			// Compute green component
			(1 + sin(c2 / pi)) / 2,
			// Compute blue component
			(1 + sin(c1 / pi)) / 2
		}
		// Apply rule when n > 0 and re(p) < 0 and im(p) >= 0 and set opacity to 1.0
		rule (n > 0 & re(p) < 0 & im(p) >= 0) [1] {
			// Compute alpha component
			1,
			// Compute red component
			(1 + sin(c2 / pi)) / 2,
			// Compute green component
			(1 + sin(c1 / pi)) / 2,
			// Compute blue component
			(1 + sin(c2 / pi)) / 2
		}
		// Apply rule when n > 0 and re(p) < 0 and im(p) < 0 and set opacity to 1.0
		rule (n > 0 & re(p) < 0 & im(p) < 0) [1] {
			// Compute alpha component
			1,
			// Compute red component
			(1 + sin(c2 / pi)) / 2,
			// Compute green component
			(1 + sin(c1 / pi)) / 2,
			// Compute blue component
			(1 + sin(c1 / pi)) / 2
		}
	}
}

Execute the script above in NextFractal and you will get the image below:

Create your own fractals

Download NextFractal and start creating your own fractal images. NextFractal is free software, available for Mac, Windows and Linux. The latest release of NextFractal and the source code are available on GitHub.

DOWNLOAD