la funzione da cui sono partito scritta da Jim Bumgardner è la seguente:
function drawFern(px,py,a,rad,level)
{
var cx = px+Math.cos(a)*rad*trunkRatio;
var cy = py+Math.sin(a)*rad*trunkRatio;
lineTo(cx, cy);
if (level > 0) {
a += bendAngle;
level--;
drawFern(cx,cy,a-branchAngle,rad*branchRatio,level);
moveTo(cx,cy);
drawFern(cx,cy,a+branchAngle,rad*branchRatio,level);
moveTo(cx,cy);
}
}
Con una sintassi semplificata il procedimento può anche essere scritto così:
R(i) : Livello del Ramo t : trasla la fine del ramo s : Scala r1,r2 : ruota in senso orario e antiorario R(i) = s(t[T(i-1)] r1[R(i-1)] r2[R(i-1)])
Purtroppo nel nostro caso non abbiamo un metodo dinamico basato sulla sostituzione, la struttura di base dell'albero è scolpita all'interno dell'applicazione.
0 comments:
Posta un commento