On 16.09.2010 09:46, Andrew Atkinson wrote: Hi!
Thanks for the examples of code you have put on the wiki, it is helping me lots with my first play at altering the code. I have moved onto playing with the area defs.
I would recommend you to check out the included symbol definitions as well, by downloading the therion source code. There in the directory /therion/mpost you find all the symbol definitions. In the a_blocks_AUT definition (in file uAUT.mp, only included since 5.3.3) you can change the values for symbol_distance and scale_factor to achieve what you want... Here's your code with two parameters, to change the distance between blocks and the scale of the blocks: def a_blocks_AMER (expr p) = T:=identity; pickup PenC; path q, qq; q = bbox p; picture tmp_pic; symbol_distance:= 1.0; scale_factor:= 1.0; tmp_pic := image( for i = xpart llcorner q step u*symbol_distance until xpart urcorner q: for j = ypart llcorner q step u*symbol_distance until ypart urcorner q: qq := punked (((-.2u,-.2u)--(.2u,-.2u)--(.2u,.2u)--(-.2u,.2u)--cycle) randomized (u/2)) scaled scale_factor rotated uniformdeviate(360) shifted ((i,j) randomized u); if xpart (p intersectiontimes qq) < 0: thclean qq; thdraw qq; fi; endfor; endfor; ); clip tmp_pic to p; draw tmp_pic; enddef; However, you have to be careful not to run into memory problems with metapost when drawing lots of small blocks. That's why the a_blocks_AUT defintion has some more code. It reduces the number of blocks which are drawn and clipped afterwards.
Andrew
Georg.