Hi,

Like this:

metapost.registerscript("scrutenized", function()
    local p = mp.scan.path()
    local r = math.round
    local d = 10^mp.scan.numeric()
    for i=1,#p do
        local pi = p[i]
        pi[1] = r(pi[1] * d) / d
        pi[2] = r(pi[2] * d) / d
    end
    local x1 = r(p[1][1])
    local y1 = r(p[1][2])
    local n = 1
    local t = { p[1], cycle = p.cycle }
    for i=2,#p do
        local pi = p[i]
        local x2 = r(pi[1])
        local y2 = r(pi[2])
        if x1 ~= x2 or y1 ~= y2 then
            n = n + 1
            t[n] = p[i]
            x1 = x2
            y1 = y2
        end
    end
    mp.inject.path(t)
end)
\stopluacode

\startMPdefinitions{doublefun}
newscriptindex mfid_scrutenized ; mfid_scrutenized := scriptindex "scrutenized" ;

    primarydef p scrutenized  n =
        runscript mfid_scrutenized p n
    enddef ;
\stopMPdefinitions

and then

p[1] := p[1] scrutenized 5 ; % 5 decimals
p[2] := p[2] scrutenized 5 ; % 5 decimals

Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to