RosettaCodeData/Task/Fractal-tree/Zkl/fractal-tree.zkl
2023-07-01 13:44:08 -04:00

18 lines
598 B
Text

fcn fractalTree(){
scale:=0.76;
sizeX:=400; sizeY:=300;
bitmap:=PPM(sizeX*2,sizeY*2,0xFF|FF|FF);
branch:='wrap(x1,y1,size,angle,depth){
ar:=angle.toRad();
x2:=x1 - size*ar.cos();
y2:=y1 + size*ar.sin();
color:=(0xff-depth*8).shiftLeft(16) + (depth*12+100).shiftLeft(8);
bitmap.line(x1,y1, x2,y2, color);
if(depth){
self.fcn(x2,y2,scale*size,angle - 30,depth - 1,vm.pasteArgs(5));
self.fcn(x2,y2,scale*size,angle + 8, depth - 1,vm.pasteArgs(5));
}
};
branch(sizeX,0,sizeY/2,90.0,10);
bitmap.write(File("foo.ppm","wb"));
}();