Hi all,

I want to draw some paths that won't intersect with each other
in metapost. Those paths are generated "randomly," e.g., draw
100 circles without any intersections. I use a very stupid
way like:
=============================================
% randomseed:= day + time*epsilon ;
save minL ; numeric minL ; minL = infinity ;
z[0] = origin;
for i=1 upto 99 :
  z[i] = (uniformdeviate 1 , uniformdeviate 1 ) ;
  for j=0 upto i-1 :
    if abs(z[i]-z[j])<minL : minL := abs(z[i]-z[j]) ; fi
  endfor
endfor
for i=0 upto 99 :
  draw fullcircle scaled 2cm shifted (z[i] scaled (2cm/minL))
    withcolor (i/100, (100-i)/100, abs(50-i)/100);
endfor
=============================================
The randomseed made me crazy, for one time it compiles
fine and sometimes it just flows out which I think may due
to the size of the picture becomes big enough.

I think a better way could be like this:
pick a random point, fill it with color, pick another point and
use "clip currentpicture to somepath" and determine whether
it is blank or not. But "if currentpicture=nullpicture" won't work,
so I'm stunned.

Thank you for your time.


-- 
Best Regards
Chen
----------------------------------------------------------------

          Zhi-chu Chen | Shanghai Synchrotron Radiation Facility
         No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China
             tel: 086 21 5955 3405 | zhichu.chen.googlepages.com
                                               | www.sinap.ac.cn
----------------------------------------------------------------
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to