2014-05-20 6 views
5

저는 학사 학위 논문을 위해 제 도서관에서 일하고 있습니다. 새로운 라인 유형을 만들기 위해 당신의 도움이 필요합니다. 벨 로즈 한 줄, 두 번 머리 화살표에 대한 코드 : < ->. 라인 (line = trailFromOffsets [unitX])에서 이중선으로 만들 수있는 능력이 있는지 물어보고 싶습니다. =와 화살표는 다음과 같습니다. < =>? 그것을 만들 수있는 능력이 있다면 나는 그 예를 들어 매우 감사 할 것입니다! 미리 감사드립니다!Haskell Diagrams 이중 줄 화살표

line = trailFromOffsets [unitX] 
doubleHeadArrow = (with & arrowHead .~ spike & headColor .~ black & headSize .~ 0.4 
         & arrowTail .~ spike' & tailColor .~ black & tailSize .~ 0.4 
         & arrowShaft .~ line) 
+0

나는거야 당신이 여기에'diagrams' 패키지에 대해 얘기하고 가정 더 정확한는 라인 기능은 트릭을해야한다. 질문에서 실제로 언급 한 것이 좋을 것입니다. 정확히 명확하지 않기 때문입니다. – Cubic

+0

조언 해 주셔서 감사합니다! 질문이 수정되었습니다. – Darius

답변

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)