Difference between revisions of "variable color"
Jump to navigation
Jump to search
(Created page with "In Metapost (or rather in Metafun) one can define arrays of colors, strings, paths, pens and other variables. An example is the following: <texcode> \starttext \startMPpage s...") |
m |
||
Line 52: | Line 52: | ||
\stoptext | \stoptext | ||
</texcode> | </texcode> | ||
− | Also note that in order to specify the size of the pen in {{code|1=MyPens[j]}} we have to say {{code|1=((2+j)*pt)}} in order for Metapost to interpret correctly the desired size of the pen. | + | Also note that in order to specify the size of the pen in {{code|1=MyPens[j]}} we have to say {{code|1=((2+j)*pt)}} in order for Metapost to interpret correctly the desired size of the pen. The outer parentheses are to prevent MetaPost from interpreting the definition as |
+ | <texcode> | ||
+ | MyPens[j] := (pencircle scaled (2+j)) * pt ; | ||
+ | </texcode> |
Revision as of 09:22, 22 June 2020
In Metapost (or rather in Metafun) one can define arrays of colors, strings, paths, pens and other variables. An example is the following:
\starttext \startMPpage string MyColors[] ; path MyPaths [] ; pen MyPens[] ; for j = -1 step 1 until 3 : MyPens[j] := pencircle scaled ((2+j)*pt) ; endfor MyPaths[-1] := (-1.5cm,1.5cm) -- (1.5cm,1.5cm) ; MyColors[-1] := "magenta" ; MyPaths[0] := (-2cm,2cm) -- (2*cos(0)*cm,-2cm) ; MyColors[0] := "darkyellow" ; MyPaths[1] := fullcircle scaled 3cm ; MyColors[1] := "darkred" ; MyPaths[2] := fullsquare scaled 2cm ; MyColors[2] := "darkgreen" ; MyPaths[3] := (-2cm,-2cm) -- (2cm,2cm) ; MyColors[3] := "darkblue" ; for j = -1 step 1 until 3 : draw MyPaths[j] withpen MyPens[j] withcolor MyColors[j] ; endfor \stopMPpage \stoptext
In the above example, instead of
string MyColors[] ;
one could have said
color MyColors[] ;
and then we should have defined each component of MyColors
as colors instead of strings:
\starttext \startMPpage color MyColors[] ; path MyPaths [] ; pen MyPens[] ; for j = -1 step 1 until 3 : MyPens[j] := pencircle scaled ((2+j)*pt) ; endfor MyPaths[-1] := (-1.5cm,1.5cm) -- (1.5cm,1.5cm) ; MyColors[-1] := magenta ; MyPaths[0] := (-2cm,2cm) -- (2*cos(0)*cm,-2cm) ; MyColors[0] := darkyellow ; MyPaths[1] := fullcircle scaled 3cm ; MyColors[1] := darkred ; MyPaths[2] := fullsquare scaled 2cm ; MyColors[2] := darkgreen ; MyPaths[3] := (-2cm,-2cm) -- (2cm,2cm) ; MyColors[3] := darkblue ; for j = -1 step 1 until 3 : draw MyPaths[j] withpen MyPens[j] withcolor MyColors[j] ; endfor \stopMPpage \stoptext
Also note that in order to specify the size of the pen in MyPens[j]
we have to say ((2+j)*pt)
in order for Metapost to interpret correctly the desired size of the pen. The outer parentheses are to prevent MetaPost from interpreting the definition as
MyPens[j] := (pencircle scaled (2+j)) * pt ;