From 7ce2f30f31421eb46d07ff65cbf9fcbda1d6612a Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Wed, 24 Jan 2018 12:00:59 +0100 Subject: 2018-01-24 10:57:00 --- metapost/context/base/mpiv/mp-node.mpiv | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'metapost') 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 : -- cgit v1.2.3