Re: [NTG-context] How to define an array of pens

2020-06-22 Thread Alan Braslau

On 22/06/20 01:17, Otared Kavian wrote:

for j = -1 step 1 until 1 :
MyPens[j] := pencircle scaled 2pt ; % I would like to say here 
(2+j) pt
endfor


MyPens[j] := pencircle scaled (2+j)*pt ;

pt is just a variable, and one can write 2pt implicitly implying the 
multiplication, but must explicitly write (2+j)*pt to parse correctly.


Alan
___
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] How to define an array of pens

2020-06-22 Thread Otared Kavian
Thanks Taco!
I added this and Hans' explanations to the wiki:

https://wiki.contextgarden.net/variable_color

but could not set a better title for that page such as « Variable arrays of 
colors, pens, paths ». 

Best regards: Otared

> On 22 Jun 2020, at 09:28, Taco Hoekwater  wrote:
> 
> 
> 
>> On 22 Jun 2020, at 09:17, Otared Kavian  wrote:
>> 
>> Hi Hans,
>> 
>> After learning from you how to define an array of colors and paths, I would 
>> like to know how is it possible to define a variable pen size.
>> In the following working example below, I would like to replace 
>> 
>>  MyPens[j] := pencircle scaled 2pt ;
>> 
>> by something like
>> 
>>  MyPens[j] := pencircle scaled (2+j) pt ;
> 
> MyPens[j] := pencircle scaled ((2+j)*pt);
> 
> “pt” is just a multiplier variable in MetaPost. there is an
> implied multiplication operation, but that only works in
> bare-number cases. That is why you need 
> 
> (2+j)*pt
> 
> The outer parentheses are to prevent MetaPost from interpreting
> your line as 
> 
>  (pencircle scaled (2+j)) * pt;
> 
> Best wishes,
> Taco
> 
> 
> ___
> 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://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki : http://contextgarden.net
> ___

___
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] How to define an array of pens

2020-06-22 Thread Taco Hoekwater


> On 22 Jun 2020, at 09:17, Otared Kavian  wrote:
> 
> Hi Hans,
> 
> After learning from you how to define an array of colors and paths, I would 
> like to know how is it possible to define a variable pen size.
> In the following working example below, I would like to replace 
> 
>   MyPens[j] := pencircle scaled 2pt ;
> 
> by something like
> 
>   MyPens[j] := pencircle scaled (2+j) pt ;

MyPens[j] := pencircle scaled ((2+j)*pt);

“pt” is just a multiplier variable in MetaPost. there is an
implied multiplication operation, but that only works in
bare-number cases. That is why you need 

 (2+j)*pt

The outer parentheses are to prevent MetaPost from interpreting
your line as 

  (pencircle scaled (2+j)) * pt;

Best wishes,
Taco


___
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


[NTG-context] How to define an array of pens

2020-06-22 Thread Otared Kavian
Hi Hans,

After learning from you how to define an array of colors and paths, I would 
like to know how is it possible to define a variable pen size.
In the following working example below, I would like to replace 

MyPens[j] := pencircle scaled 2pt ;

by something like

MyPens[j] := pencircle scaled (2+j) pt ;

but this does not work (neither do (2+j)*pt). 
Is it possible to specify the pen size according to the value of j, without 
using a structure like

if j == -1 :
MyPens[j] := pencircle scaled 1pt ;
elseif j == 0 :
MyPens[j] := pencircle scaled 2pt ;
else :
MyPens[j] := pencircle scaled 3pt ;
fi

(In my real example I have more than three values for j).

%% begin example-array.tex
\startMPpage
string MyColors[] ;
path   MyPaths [] ;
pen MyPens[] ;
for j = -1 step 1 until 1 :
MyPens[j] := pencircle scaled 2pt ; % I would like to say here 
(2+j) pt
endfor
MyPaths[-1] := (-1.5cm,1.5cm) -- (1.5cm,1.5cm) ; MyColors[-1] := 
"magenta" ; 
MyPaths[0] := (-2cm,2cm) -- (2cm,-2cm) ; MyColors[0] := "darkyellow" ;
MyPaths[1] := fullcircle scaled 3cm ; MyColors[1] := "darkred" ;
for j = -1 step 1 until 1 :
draw MyPaths[j] withpen MyPens[j] withcolor MyColors[j] ;
endfor
\stopMPpage
%% end example-array.tex

Best regards: Otared
___
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___