[Therion] MetaPost random numbers question

Bill Gee bgee at campercaver.net
Thu Oct 24 16:48:43 CEST 2024


Hello everyone -

I have created a custom symbol for a broken stalagmite/stalactite.  It 
is exactly the same as regular stalactite/stalagmite (also custom code) 
except turned on its side.  I could use the orientation feature to 
simply turn the stalagmite symbol, but then it is not called out in the 
legend.

I would like to have the code randomly point the symbol either left or 
right.  My code uses the "uniformdeviate()" function to generate random 
numbers which are then tested.

The problem is that the symbols point left far more often than right.  I 
suspect the way I am using uniformdeviate is not right.  I would 
appreciate someone getting an eyeball on my code to see if it at least 
sane.  Code is below ...

I have tried both "uniformdeviate(1)" and "uniformdeviate 1", with 
basically the same result.  Both syntaxes compile without error.  The 
very few samples I found while searching use both syntaxes.

I found precious little in any of the MetaPost documentation about this 
function.

Thanks!
-- 
===============
Bill Gee




# This code defines the broken stal symbol.
       def p_u_brokenstal (expr pos,theta,sc,al) =
         U:=(0.2u, 0.4u);
         T:=identity aligned al rotated theta scaled sc shifted pos;
         pickup PenC;

         #Draw and paint the symbol.  Point randomly left or right
         if uniformdeviate(1) < 0.5:
            thfill (0.4u,0.2u)--(-0.4u,0.0u)--(0.4u,-0.2u)--cycle;
         else:
            thfill (-0.4u,0.2u)--(0.4u,0.0u)--(-0.4u,-0.2u)--cycle;
         fi

       enddef;



More information about the Therion mailing list