Haskell Diagrams双箭头

Dar*_*ius 5 haskell haskell-diagrams

我现在正在我的图书馆学习论文,我需要你帮助制作新的线型.Bellow有单行代码,双头箭头:< - >.我想问一下是否有能力从line(line = trailFromOffsets [unitX])到doubleline,看起来像这样:=,带有它的箭头看起来像这样<=>?如果有能力做到这一点,我会非常感谢一个例子!先感谢您!

line = trailFromOffsets [unitX]
doubleHeadArrow  = (with & arrowHead  .~ spike & headColor .~ black & headSize .~ 0.4
                         & arrowTail .~ spike' & tailColor  .~ black & tailSize .~ 0.4
                         & arrowShaft .~ line) 
Run Code Online (Sandbox Code Playgroud)

grw*_*rwp 1

我认为你需要创建某种假箭头。取一个带有隐形轴的双头箭头,不透明度为0。并将两条平行线放置到隐形轴上,即箭头,使用sep

import Data.Colour (withOpacity)

invisibleShaftArrow = arrowBetween' (with & arrowHead  .~ spike & headColor .~ black & headSize .~ 0.4
                     & arrowTail .~ spike' & tailColor  .~ black & tailSize .~ 0.4
                     & arrowShaft .~ line & shaftColor .~ anyColor `withOpacity` 0)
Run Code Online (Sandbox Code Playgroud)

编辑:更正确的是,lines函数应该可以解决问题:

line = trailFromOffsets [unitX]
lines = mconcat $ map strokeLocTrail [line, offsetTrail 0.1 line]

example = (with & arrowHead  .~ spike & headColor .~ black & headSize .~ 0.4
                & arrowTail .~ spike' & tailColor  .~ black & tailSize .~ 0.4
                & arrowShaft .~ lines)
Run Code Online (Sandbox Code Playgroud)