NextFractal

# Combine gradient with not linear function

In this example you will learn how to create a Mandelbrot set combining a gradient with a not linear function.

```fractal {
// Set region margins to left=-3.0, bottom=-1.5, right=0.0, top=1.5
// Declare state vector as [x,n] where x and n are built-in variables
orbit [<-3.0,-1.5>,<0.0,1.5>] [x,n] {
// 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)] {
// Create palette with 200 colors and name gradient
// Create 100 interpolated colors from FFFFFFFF to FF000000
[#FFFFFFFF > #FF000000, 100];
// Create 100 interpolated colors from FF000000 to FFFFFFFF
[#FF000000 > #FFFFFFFF, 100];
}
// Initialize variables p and m
init {
// Create variable p limited to interval [-1,+1]
p = sin(mod(x) * 0.22 / pi);
// Create variable m limited to interval [0,200]
m = 200 * ((1 + p) / 2);
}
// Apply rule when n > 0 and set opacity to 1.0
rule (n > 0) [1.0] {
// Set color to element m - 1 (gradient has 200 colors starting from index 0)