Tried to make some angular technological Ultra Fractal formula. Anyway, formula is plain z=z*z+c, in UF "formula" realy is a programm module. Most of conditional formulas looks kind of unruly and have problems with colouring. So I went back to the vectors. Used this:
z=z*z
z=z-z/(ceil(z) +1.0e-20)
z=z+c
+ put this in cycle. If that is placed before the fractal formula it gets divided into uninteresting squares but showing how it transforms space. Ceil is kind of the most beautifull.
z=FractalFormula(z)
while i < @cycles
i = i + 1
IF (@roundtype=="ceil")
vector = ceil(z)
ELSEIF (@roundtype=="round")
vector = round(z)
ELSEIF (@roundtype=="floor")
vector = floor(z)
ELSEIF (@roundtype=="trunc")
vector = trunc(z)
ENDIF
IF (vector !=0)
vector = z/vector
ENDIF
z=z-vector
endwhile
z=z+c
This created angles, figures, square and hexagonal spirals. Goes nicely with talis and burning ship but not with square like quad gen mandelbrot.
+ bump mapping of image:
In Ultra Fractal
Fractalus_explore_start {
::kJRNEgn2lN1yOSNMQw7RK/DW5Oz48cmBkPAHQAiVgEcfkXnOJm1xOy2hdCf902xDPPl4q7uc
XV7ewyFeu6l5ZEiX6VAr4t7QrurwtFlxCXdeu1XQeW27nYdNUyEIHn8smzUiivBWHrMQgwC9
SvjV8aFM8qS6xqLHrolNF5Zx0i3igv4lGNr4NcxTjWzquvgYW4CpfjVSpkZwPZ6ZzrKvch7c
5Zz8lFpecvcQ7BL7F0DtdNVVtVd02j4JaZbF9cdddLZmPqZ0DXKrrawrPPbwYR24x6n53kBC
qapkFwKmAxTMzwAZQqANfGNAY+w6wcBBvJ72f4HfFETaeRgllriNhCQdj/G1gfbBYCQqQg09
xegr7B1jWjHBXMPHu29qR+kuBkXjNSxjcpys6D6HdglrOwHJ83MsXn7ZpXMdP6HWVSOi+twX
Uxl0LHRngSbQwgK39QlE6ZazOD3hZhErIDXHW1Cs5cemsHVMmyqDGkuJYDwqCyBP48WQHm5o
AkaHm6+TGLX7GQdpNaIPDlw/HSJ1A3+P+rQ9L/9z8VVPE0o76XmNG/0dL2o/OYHx027DwNv/
DXlQwB4g8Gr8Qwz+BOajPg+HveQ6Zbgb/PvcOM1iFgHnlaMaV6Q4pBrrOMfu38f0MmmYBkde
rjV/XjsIC6bYS9mUXOhjo0ZMeTe2ol3LR1s/O2MPj/jLLOVYZStRETc9I0Tw1NdPuxdg8+He
3nIjGDi902hCiLaPB1EoAdMecVqkIxnJ3YUkVchFlAt+UTTCtrJBXiLItnOfJhX2devRix6O
d6U5lTpYVtnSBqrpV1J06m6EabJaupl2ocSdGK87ty9V6q228sfC/qFdkB==
}
* * *
Then went to 3D. everything is more easy with built in quaternion math:
i=0;
//a cycle
while (i< 3)
{
i= i+ 1;
vectr = ceil(z);
if (vectr !=0)
{
vectr = z/vectr;
}
z=z-vectr;
}
But there is no quaternions say in Fragmentarium. In Chaos pro there were code for the division of hypercomplex numbers. Pretty hard division:
real x1,y1,z1, x2,y2,z2,w2, det,s,t, x3,y3,z3;
x1=real(z);
y1=imag(z);
z1=part_j(z);
i=0;
// cycle
while (i< 3)
{
i= i+ 1;
x3=ceil(x1);
y3=ceil(y1);
z3=ceil(z1);
//hypercomplex x1y1z1/x3y3z3
det=( sqr(x3)+sqr(y3+z3) ) * ( sqr(x3)+sqr(y3-z3) );
if (det !=0)
{
s=sqr(x3)+sqr(y3)+sqr(z3);
t=-y3*z3;
x2=(x3*s)/det;
y2=(-y3*s-2*z3*t)/det;
z2=(-z3*s-2*y3*t)/det;
w2=(-2*x3*t)/det;
x3=x1*x2 - y1*y2 - z1*z2;
y3=y1*x2 + x1*y2 - z1*w2;
z3=z1*x2 + x1*z2 - y1*w2;
x1=x1-x3;
y1=y1-y3;
z1=z1-z3;
}
}
z=quaternion(x1,y1,z1,0);
Put this after the DE function of Mandelbulb. Don't destroys much, just a few sand:
And after the DE-less mandelbox. Quaternion vs hypercomplex division.
p.s.
Mirror thread
http://www.fractalus.ru/forum/programmirovanie-dlya-fraktalov/82-programmiruem-tekhnologicheskuyu-formulu-k-uf#1641