On 2013–05–07 Roland Thiers wrote:
Hi, I did this code to get a regular polygon with metafun, it works but I would like to have an user command like \define or \def to be able to choose the number of sides, n. I don't know how to do that ...
Here's one way to do it: \startuniqueMPgraphic{polygoneregulier}{sides} drawoptions (withpen pencircle scaled 2pt); numeric u ; u:=1*cm ; numeric n ; n:=\MPvar{sides}; pair a[]; a[0]:=(0,3u); path polygone[] ; for i=1 upto n : a[i]:=a[0] rotatedaround(origin,i*360/n) ; polygone[i]:=a[i-1]--a[i]; draw polygone[i]; endfor; draw fullcircle scaled 6u withcolor blue; \stopuniqueMPgraphic %% \polyreg{<number>} \define[1]\polyreg {\setupMPvariables[polygoneregulier][sides=#1]%% \uniqueMPgraphic{polygoneregulier}} \starttext \dontleavehmode \dorecurse{9}{\polyreg\recurselevel\space} \stoptext You can extent this to be able to use key-value syntax or default values if you like. Marco