gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz metacode/umlhelper.mp lava/etest.mp


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz metacode/umlhelper.mp lava/etest.mp
Date: Fri, 24 Jan 2003 04:06:46 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        03/01/24 04:06:46

Modified files:
        metacode       : umlhelper.mp 
Added files:
        lava           : etest.mp 

Log message:
        RoughEdge

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/lava/etest.mp?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/metacode/umlhelper.mp.diff?tr1=1.19&tr2=1.20&r1=text&r2=text

Patches:
Index: gzz/metacode/umlhelper.mp
diff -u gzz/metacode/umlhelper.mp:1.19 gzz/metacode/umlhelper.mp:1.20
--- gzz/metacode/umlhelper.mp:1.19      Thu Jan 16 04:47:26 2003
+++ gzz/metacode/umlhelper.mp   Fri Jan 24 04:06:46 2003
@@ -401,6 +401,50 @@
     show "JLINKRECT("& char(34) & name & char(34) & "," & 
strpair((ulcorner(p))) &","& strpair((lrcorner(p))) & ")"
 enddef;
 
+vardef jitterpt(expr p, s) =
+    p + s * (normaldeviate, normaldeviate)
+enddef;
+
+vardef jitterpath(expr p, npt, pta) =
+    save s;
+    save i;
+       for i = 0 step length(p)/npt until (length(p) * (npt-1.0)/npt):
+           jitterpt(point i of p, pta) ...
+       endfor
+    jitterpt(point length(p) of p, pta)
+enddef;
+
+vardef drawRoughEdge(expr p) =
+    save c, hor, ver, np, j, astart, athrough, aend, na;
+    pair c;
+    c = center(p);
+    hor = 1.5 * xpart(llcorner p - c);
+    ver = 1.5 * ypart(llcorner p - c);
+
+    astart = uniformdeviate(360);
+    athrough = 390 + 40 * normaldeviate;
+    aend = astart + athrough;
+
+    na = round(20 + 10 * normaldeviate);
+    if na < 3 : na := 3; fi;
+
+    path np;
+
+    
+    np = (sind(astart), cosd(astart)) 
+       for i = 1 upto na:
+           .. (sind(astart + athrough/na*i),
+               cosd(astart + athrough/na*i))
+       endfor;
+    
+    np := np xscaled(hor) yscaled(ver)  shifted(c);
+
+    j = .15 * abs(hor);
+    np := jitterpath(np, round(10+uniformdeviate(10)), .25 * j);
+    np := jitterpath(np, round(40+uniformdeviate(30)), .05 * j);
+    draw np withpen pencircle scaled 8pt xscaled .4 rotated -37;;
+enddef;
+
 %%%%%%%%%%%%%%%%%%%
 %
 %  Placement




reply via email to

[Prev in Thread] Current Thread [Next in Thread]