ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Peter Rolf <indiego@gmx.net>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: random background picture in metafun
Date: Tue, 13 Mar 2012 19:24:22 +0100	[thread overview]
Message-ID: <4F5F90D6.5040009@gmx.net> (raw)
In-Reply-To: <alpine.LNX.2.02.1203131358580.17709@qrpragenyvmrq>

Am 13.03.2012 19:00, schrieb Aditya Mahajan:
> On Tue, 13 Mar 2012, Peter Rolf wrote:
> 
>> Am 13.03.2012 15:45, schrieb Thomas A. Schmitz:
>>> Hi all,
>>>
>>> scenario: for a presentation, I want the background to be a random
>>> picture, taken from a directory "backgroundpics." The pictures are
>>> numbered consecutively as 1.jpg through 22.jpg. For some complex
>>> reasons, it would be easier for me to include these pictures via metafun
>>> (I want to add other graphical elements on top). So my question is, how
>>> can I pick a random picture? Given the code
>>>
>>> StartPage ;
>>>   draw externalfigure "backgoundpics/1" xscaled PaperWidth yscaled
>>> PaperHeight ;
>>> StopPage ;
>>>
>>> how can I obtain a random number and make metapost pick the
>>> corresponding picture? Sorry, difficult to make a minimal example
>>> here...
>>>
>> (slightly tested)
>>
>> string mypath, rndfile;
>>
>> mypath:= "backgroundpics/";
>> nofpics:= 22;
>>
>> n:= round(uniformdeviate(nofpics-1)+1);
> 
> Actually, round (uniformdeviate(nopics-1)) does not give equal weightage
> to 1 and nofpics. A better solution is
>
> n:= floor(uniformdeviate(nofpics)) + 1;
> 
:-)

I used 'floor' in my prior tests, but changed it to 'round' because of
the very small chance of getting the highest number (at least with my
formula).

Let's hope, nobody has wikified my bad maths ;-)


> which gives a uniform weight to all numbers.
> 
>> rndfile:= mypath & decimal n;
> 
> Aditya
> ___________________________________________________________________________________
> 
> 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
> ___________________________________________________________________________________
> 
> 

___________________________________________________________________________________
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
___________________________________________________________________________________


  reply	other threads:[~2012-03-13 18:24 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-13 14:45 Thomas A. Schmitz
2012-03-13 15:58 ` Aditya Mahajan
2012-03-13 16:33 ` Peter Rolf
2012-03-13 16:56   ` Thomas A. Schmitz
2012-03-13 17:09     ` Thomas A. Schmitz
2012-03-13 18:00   ` Aditya Mahajan
2012-03-13 18:24     ` Peter Rolf [this message]
2012-03-15  9:18       ` Thomas A. Schmitz
2012-03-15 18:06         ` Hans Hagen
2012-03-15 18:23           ` Thomas A. Schmitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F5F90D6.5040009@gmx.net \
    --to=indiego@gmx.net \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).