Con Flash ad esempio si può texturizzare il nostro albero come ci piace distorcendo delle figure ed adattandole alla nostra struttura.
Ho preparato un esempio per consentire a chiunque di inserire le proprie texture all'interno dell'albero.
public function drawFern(p,a,rad,level) { var c:Point = new Point(p.x + Math.cos(a) * rad * trunkRatio, p.y + Math.sin(a) * rad * trunkRatio); p.height = Point.distance(new Point (p.x,p.y), c); p.width = (level + 1)*trunkRatio*30 p.rotation = GeomUtil.radToGrad(a)-90; this.addChild(p); if (level > 0) { a += bendAngle; level--; var b1:tronco = new tronco; var b2:tronco = new tronco; var b3:tronco = new tronco; b1.x = b2.x = b3.x = c.x; b1.y = b2.y = b3.y = c.y; drawFern(b1, a - branchAngle, rad * branchRatio, level); drawFern(b2, a + branchAngle, rad * branchRatio, level); drawFern(b3,a, rad*antiTrunkRatio, level); }else { var f:foglie = new foglie; f.x = c.x; f.y = c.y; f.rotation = p.rotation this.addChild(f); } }Questa volta gli input iniziali non sono le coordinate di un punto (px, py) ma un MovieClip.
Ora abbiamo 2 differenti texture (tronco, foglie).
A differenza del primo esempio, foglie viene posizionato solo quando la variabile level è scesa a zero, quindi nell'ultima recursione.
Inoltre ho inserito una funzione radToGrad, che effettua una conversione da radianti a gradi (non ho mai capito come mai la proprietà rotation si esprime in scomodissimi gradi.)
public static function radToGrad(rad:Number) { return rad/Math.PI*180; }Domani cerco di postare la classe completa e qualche immagine di esempio.
0 comments:
Posta un commento