function r = browniantree(xsize, ysize = xsize, numparticle = 1000) r = zeros(xsize, ysize, "uint8"); r(unidrnd(xsize), unidrnd(ysize)) = 1; for i = 1:numparticle px = unidrnd(xsize-1)+1; py = unidrnd(ysize-1)+1; while(1) dx = unidrnd(2) - 1; dy = unidrnd(2) - 1; if ( (dx+px < 1) || (dx+px > xsize) || (dy+py < 1) || (dy+py > ysize) ) px = unidrnd(xsize-1)+1; py = unidrnd(ysize-1)+1; elseif ( r(px+dx, py+dy) != 0 ) r(px, py) = 1; break; else px += dx; py += dy; endif endwhile endfor endfunction r = browniantree(200); r( r > 0 ) = 255; jpgwrite("browniantree.jpg", r, 100); % image package