summaryrefslogtreecommitdiff
path: root/metapost
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-01-24 12:00:59 +0100
committerContext Git Mirror Bot <phg42.2a@gmail.com>2018-01-24 12:00:59 +0100
commit7ce2f30f31421eb46d07ff65cbf9fcbda1d6612a (patch)
treecb78bde46cd0939d74075a8047ec8d9bf0210a4a /metapost
parent35a569ef13b42755e7469cf93d3e4982e12252d6 (diff)
downloadcontext-7ce2f30f31421eb46d07ff65cbf9fcbda1d6612a.tar.gz
2018-01-24 10:57:00
Diffstat (limited to 'metapost')
-rw-r--r--metapost/context/base/mpiv/mp-node.mpiv23
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 :