diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-01-24 12:00:59 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2018-01-24 12:00:59 +0100 |
commit | 7ce2f30f31421eb46d07ff65cbf9fcbda1d6612a (patch) | |
tree | cb78bde46cd0939d74075a8047ec8d9bf0210a4a /metapost | |
parent | 35a569ef13b42755e7469cf93d3e4982e12252d6 (diff) | |
download | context-7ce2f30f31421eb46d07ff65cbf9fcbda1d6612a.tar.gz |
2018-01-24 10:57:00
Diffstat (limited to 'metapost')
-rw-r--r-- | metapost/context/base/mpiv/mp-node.mpiv | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/metapost/context/base/mpiv/mp-node.mpiv b/metapost/context/base/mpiv/mp-node.mpiv index 1f046a436..fe6b40c64 100644 --- a/metapost/context/base/mpiv/mp-node.mpiv +++ b/metapost/context/base/mpiv/mp-node.mpiv @@ -158,13 +158,22 @@ vardef fromtopaths@#(expr d)(suffix p)(expr f)(suffix q)(text s) = fi ; save deviation ; deviation := if numeric d: d else: 0 fi ; - r1 = if deviation=0 : r0 - else : - point 0 of r0 .. - unitvector direction .5length r0 of r0 rotated 90 - scaled deviation * arclength r0 - shifted point .5length r0 of r0 .. - point length r0 of r0 + r1 = if (point 0 of r0) = (point length r0 of r0) : + (fullcircle rotated 180 + if mfun_laboff@# <> origin : + rotated angle mfun_laboff@# + shifted .5mfun_laboff@# + fi) + scaled deviation + shifted point 0 of r0 + elseif deviation=0 : + r0 + else : + point 0 of r0 .. + unitvector direction .5length r0 of r0 rotated 90 + scaled deviation * arclength r0 + shifted point .5length r0 of r0 .. + point length r0 of r0 fi ; else : if known l : |