≥ Le 7 mai 13 à 13:05, Wolfgang Schuster a écrit :
Am 07.05.2013 um 09:51 schrieb Marco Patzer
: 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}}
\define[1]\polyreg {\uniqueMPgraphic{polygoneregulier}{sides=#1}}
Wolfgang
Thank you very much for this precision, Wolfgang. I tried with two variables and it works with this syntax : \startuniqueMPgraphic{polygoneregulier} numeric u ; u:=\MPvar{unite}*cm ; numeric n ; n:=\MPvar{sides}; rest of the code \stopuniqueMPgraphic \define[2]\polyreg {\setupMPvariables[polygoneregulier][unite,sides] \uniqueMPgraphic{polygoneregulier}{sides=#1,unite=#2}} \starttext %\uniqueMPgraphic{polygoneregulier}{unite=2,sides=4} \polyreg{6}{0.5} \stoptext I did not find any détails on \MPvar et \setupMPvariables on the wiki, however Roland
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________