L-system, showing 2-image at same time
Hey guys
How can we showing 2-different image that using different rules on one file, to both appear in a single scene simultaneously? Suppose we have 2 rules: 1- tree, 2- snow flake
How technique can we use for showing for instance snow flake and tree together in one scene?
Rule of snow flake:
String state = "F--F--F";
String F_rule = "F+F--F+F";
There is a little difference in main code in both snow flake and tree. I just change the rule, angle, L and sometimes add d/=x under for(int K=0; K < L; K++) for decrease the size in every level.
-
int SZ = 512;
int sz=SZ/2;
float d = sz/128; //512/128=4
float ang = (25.7/180.0)*PI; //25.7
float s=1;
float x=SZ/2;
float y=SZ;
float a = -HALF_PI;
String state = "F";
String F_rule = "F[+F]F[-F]F";
String H_rule = "";
String f_rule = "";
int L = 5; -
void setup()
{
size(SZ,SZ);
background(255);
stroke(0);
for(int K=0; K < L; K++)
state = substitute(state, F_rule, H_rule, f_rule);
noLoop();
println("state "+state);
} -
void draw()
{
translate(x,y);
rotate(a);
for(int i=0; i<state.length(); i++)
turtle(state.charAt(i));
} -
void turtle(char c)
{
switch(c)
{
case 'F':
case 'H':
line(0,0, d,0);
translate(d,0);
break;
case 'f':
translate(d,0);
break;
case 's':
scale(s,s);
break;
case '-':
rotate(ang);
break;
case '+':
rotate(-ang);
break;
case '[':
pushMatrix();
break;
case ']':
popMatrix();
break;
default:
println("Bad character: "+c);
exit();
}
} -
String substitute(String s, String F, String H, String f)
{
String s2 = new String();
for(int j=0; j<s.length(); j++)
if(s.charAt(j)=='F')
s2 = s2+F;
else if(s.charAt(j)== 'H')
s2 = s2+H;
else if(s.charAt(j)=='f')
s2 = s2+f;
else
s2=s2+s.charAt(j);
return s2;
}