Haskell Diagrams双箭头

时间:2014-05-20 08:11:43

标签: 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) 

1 个答案:

答案 0 :(得分: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)

编辑: 更正确的是,功能应该可以解决问题:

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)