Aby nie denerwować się ponownie zamieszczam poniżej kod, który jest bazą do moich ulubionych krateczek:
import org.jwildfire.create.tina.base.XForm;
import
org.jwildfire.create.tina.variation.FlameTransformationContext;
import org.jwildfire.create.tina.base.XYZPoint;
import static org.jwildfire.base.mathlib.MathLib.*;
public void transform(FlameTransformationContext pContext, XForm
pXForm,
XYZPoint pAffineTP, XYZPoint pVarTP, double pAmount) {
double fieldWidth=1.0;
double fieldHeight=1.0;
int rows=7;
int cols=8;
int size=rows*cols;
double lx=0.5-pContext.random();
double ly=0.5-pContext.random();
int x,y;
if(rows<=1 && cols<=1) {
x=y=0;
}
else if(rows>1 && cols<=1) {
x=0;
y=pContext.random(rows/2+rows%2)*2;
}
else {
y=pContext.random(rows);
if(cols%2==0) {
x=pContext.random(cols)/2*2+y%2;
}
else {
x=pContext.random(cols+1-(y%2)*2)/2*2+y%2;
}
}
pVarTP.x+= (x-(rows-1)/2.0+lx)*fieldWidth;
pVarTP.y+= (y-(cols-1)/2.0+ly)*fieldHeight;
}
Kod zamieszczony tutaj, możamy użyć do zmiany nonlinear transposition fraktala na custom_wf. Efekt postaram się pokazać wkrótce... jeśli będzie wart pokazania;)
Teraz prezentuję jeszcze jeden kwiatuszek z krateczką (a nie zawsze krateczka jest widoczna, chociaż zasada konstrukcji jest prawidłowa)