[NTG-context] Problem with a defined colour in MetaFun

Keith McKay mckaymeister at gmail.com
Fri Apr 29 15:19:15 CEST 2022


Hi Fabrice

Thank you for your reply. It works the way I wanted. Wolfgang also 
replied and this has lead me to an alternative method. See my reply to 
him in this mailing list.

Best Wishes

Keith

On 28/04/2022 13:45, Fabrice L wrote:
> Sorry, I was a little too enthusiastic, here here is the code :
>
>> Le 28 avr. 2022 à 08:41, Fabrice L <fabrice.alpha at gmail.com> a écrit :
>>
>> Hi Keith,
>>
>>> Le 28 avr. 2022 à 06:05, Keith McKay via ntg-context 
>>> <ntg-context at ntg.nl> a écrit :
>>>
>>> Hi,
>>>
>>> In the MWE below I define an rgb colour, myColor1, using random 
>>> numbers for the r, g and b components. I then use it to fill a 
>>> unitsquare the size of the page, which works as expected. In the 
>>> loop that follows I then use the defined colour, myColor1, along 
>>> with white and the variable r to create shades of myColor1 as in the 
>>> MWE below. However, myColor1 is not recognised in the loop and seems 
>>> to be replaced by black, although if I use a predefined colour, in 
>>> this case BurntSienna from the crayola collection, it works as 
>>> expected.  I have tried a number of ways to get this to work as 
>>> shown in the code but without success. I would be grateful for any 
>>> suggestions.
>>>
>>> Best Wishes
>>>
>>> Keith McKay
>>>
>>> %%%%%%%%%%%%%%%%%%%%MWE%%%%%%%%%%%%%
>>> \setuppapersize[A4,portrait]
>>> \usecolors[crayola]
>>> \starttext
>>> \dorecurse{10}{
>>> \startMPpage
>>> StartPage;
>>> \definecolor[name="myColor1", r = uniformdeviate(1), g = 
>>> uniformdeviate(1), b = uniformdeviate(1) ] ;
>>> fill unitsquare xscaled PaperWidth yscaled PaperHeight withcolor 
>>> "myColor1";
>>> for i =2 step 2 until 10:
>>> r := i/10;
>>> fill unitsquare xscaled 5cm yscaled .5cm shifted (1cm,i*cm) 
>>> withcolor(r[\MPcolor{BurntSienna},white]);
>>> fill unitsquare xscaled 5cm yscaled .5cm shifted (7cm,i*cm) 
>>> withcolor(r[\MPcolor{myColor1}, white]);
>>> fill unitsquare xscaled 5cm yscaled .5cm shifted (13cm,i*cm) 
>>> withcolor(r[\MPcolor{"myColor1"}, white]);
>>> %fill unitsquare xscaled 5cm yscaled .5cm shifted (13cm,i*cm) 
>>> withcolor(r[myColor1 , white]); This line causes an error.
>>> endfor;
>>> StopPage;
>>> \stopMPpage
>>> }
>>>
>>> \stoptext
>>> %%%%%%%%%%%%%%%%%%%%%%%%%%%end MWE%%%%%%%%%%%
>>
>> Here is a solution, with works here, defining in another way the 
>> color «  myColor »:
>>
>> \setuppapersize[A4,portrait]
>> \usecolors[crayola]
>> \starttext
>> \dorecurse{2}{
>> \startMPpage
>> StartPage;
>> color myColor ;
>> myColor := (uniformdeviate(1),uniformdeviate(1),uniformdeviate(1));
>> fill unitsquare xscaled PaperWidth yscaled PaperHeight withcolor myColor;
>> for i =2 step 2 until 10:
>> r := i/10;
>> fill unitsquare xscaled 5cm yscaled .5cm shifted (1cm,i*cm) 
>> withcolor(r[\MPcolor{BurntSienna},white]);
>> fill unitsquare xscaled 5cm yscaled .5cm shifted (7cm,i*cm) 
>> withcolor(r[\MPcolor{myColor1}, white]);
>> fill unitsquare xscaled 5cm yscaled .5cm shifted (13cm,i*cm) 
>> withcolor(r[\MPcolor{"myColor1"}, white]);
>> %fill unitsquare xscaled 5cm yscaled .5cm shifted (13cm,i*cm) 
>> withcolor(r[myColor1 ,  white]); This line causes an error.
>> endfor;
>> StopPage;
>> \stopMPpage
>> }
>>
>> \stoptext
>
> I forgot to remove « myColor1 » from the others parts of the code.
> \setuppapersize[A4,portrait]
> \usecolors[crayola]
> \starttext
> \dorecurse{10}{
> \startMPpage
> StartPage;
> color myColor ;
> myColor := (uniformdeviate(1),uniformdeviate(1),uniformdeviate(1));
> fill unitsquare xscaled PaperWidth yscaled PaperHeight withcolor myColor;
> for i =2 step 2 until 10:
> r := i/10;
> fill unitsquare xscaled 5cm yscaled .5cm shifted (1cm,i*cm) 
> withcolor(r[\MPcolor{BurntSienna},white]);
> fill unitsquare xscaled 5cm yscaled .5cm shifted (7cm,i*cm) 
> withcolor(r[myColor, white]);
> fill unitsquare xscaled 5cm yscaled .5cm shifted (13cm,i*cm) 
> withcolor(r[myColor, white]);
> %fill unitsquare xscaled 5cm yscaled .5cm shifted (13cm,i*cm) 
> withcolor(r[myColor1 ,  white]); This line causes an error.
> endfor;
> StopPage;
> \stopMPpage
> }
>
> \stoptext
>
>
>>
>> Fabrice.
>>> ___________________________________________________________________________________
>>> If your question is of interest to others as well, please add an 
>>> entry to the Wiki!
>>>
>>> maillist 
>>> :ntg-context at 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
>>> ___________________________________________________________________________________
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20220429/ed461606/attachment.htm>


More information about the ntg-context mailing list