Maintainer  diagramsdiscuss@googlegroups.com 

Safe Haskell  None 
Drawing arrows in two dimensions. For a tutorial on drawing arrows using this module, see the diagrams website: http://projects.haskell.org/diagrams/doc/arrow.html.
 arrowV :: Renderable (Path R2) b => R2 > Diagram b R2
 arrowV' :: Renderable (Path R2) b => ArrowOpts > R2 > Diagram b R2
 arrowAt :: Renderable (Path R2) b => P2 > R2 > Diagram b R2
 arrowAt' :: Renderable (Path R2) b => ArrowOpts > P2 > R2 > Diagram b R2
 arrowBetween :: Renderable (Path R2) b => P2 > P2 > Diagram b R2
 arrowBetween' :: Renderable (Path R2) b => ArrowOpts > P2 > P2 > Diagram b R2
 connect :: (Renderable (Path R2) b, IsName n1, IsName n2) => n1 > n2 > Diagram b R2 > Diagram b R2
 connect' :: (Renderable (Path R2) b, IsName n1, IsName n2) => ArrowOpts > n1 > n2 > Diagram b R2 > Diagram b R2
 connectPerim :: (Renderable (Path R2) b, IsName n1, IsName n2) => n1 > n2 > Angle > Angle > Diagram b R2 > Diagram b R2
 connectPerim' :: (Renderable (Path R2) b, IsName n1, IsName n2) => ArrowOpts > n1 > n2 > Angle > Angle > Diagram b R2 > Diagram b R2
 connectOutside :: (Renderable (Path R2) b, IsName n1, IsName n2) => n1 > n2 > Diagram b R2 > Diagram b R2
 connectOutside' :: (Renderable (Path R2) b, IsName n1, IsName n2) => ArrowOpts > n1 > n2 > Diagram b R2 > Diagram b R2
 arrow :: Renderable (Path R2) b => Double > Diagram b R2
 arrow' :: Renderable (Path R2) b => ArrowOpts > Double > Diagram b R2
 data ArrowOpts = ArrowOpts {
 _arrowHead :: ArrowHT
 _arrowTail :: ArrowHT
 _arrowShaft :: Trail R2
 _headGap :: Measure R2
 _tailGap :: Measure R2
 _headStyle :: Style R2
 _headLength :: Measure R2
 _tailStyle :: Style R2
 _tailLength :: Measure R2
 _shaftStyle :: Style R2
 arrowHead :: Lens' ArrowOpts ArrowHT
 arrowTail :: Lens' ArrowOpts ArrowHT
 arrowShaft :: Lens' ArrowOpts (Trail R2)
 headGap :: Lens' ArrowOpts (Measure R2)
 tailGap :: Lens' ArrowOpts (Measure R2)
 gaps :: Traversal' ArrowOpts (Measure R2)
 gap :: Traversal' ArrowOpts (Measure R2)
 headTexture :: Setter' ArrowOpts Texture
 headStyle :: Lens' ArrowOpts (Style R2)
 headLength :: Lens' ArrowOpts (Measure R2)
 tailTexture :: Setter' ArrowOpts Texture
 tailStyle :: Lens' ArrowOpts (Style R2)
 tailLength :: Lens' ArrowOpts (Measure R2)
 lengths :: Traversal' ArrowOpts (Measure R2)
 shaftTexture :: Setter' ArrowOpts Texture
 shaftStyle :: Lens' ArrowOpts (Style R2)
 straightShaft :: Trail R2
 module Diagrams.TwoD.Arrowheads
Examples
Example 1
 Connecting two diagrams at their origins. sq = square 2 # showOrigin # lc darkgray # lw ultraThick ds = (sq # named "left")  strutX 3  (sq # named "right") shaft = cubicSpline False ( map p2 [(0, 0), (1, 0), (1, 0.2), (2, 0.2)]) example1 = ds # connect' (with & arrowHead .~ dart & arrowTail .~ quill & arrowShaft .~ shaft & headLength .~ huge & tailLength .~ veryLarge) "left" "right" # pad 1.1
Example 2
 Comparing connect, connectPerim, and arrowAt. oct = octagon 1 # lc darkgray # lw ultraThick # showOrigin dias = oct # named "first"  strut 3  oct # named "second"  Connect two diagrams and two points on their trails. ex12 = dias # connect' (with & lengths .~ veryLarge) "first" "second" # connectPerim' (with & lengths .~ veryLarge) "first" "second" (15/16 @@ turn) (9/16 @@ turn)  Place an arrow at (0,0) the size and direction of (0,1). ex3 = arrowAt origin unit_Y example2 = (ex12 <> ex3) # centerXY # pad 1.1
Creating arrows
arrowV :: Renderable (Path R2) b => R2 > Diagram b R2Source
arrowV v
creates an arrow with the direction and magnitude of
the vector v
(with its tail at the origin), using default
parameters.
arrowV' :: Renderable (Path R2) b => ArrowOpts > R2 > Diagram b R2Source
arrowV' v
creates an arrow with the direction and magnitude of
the vector v
(with its tail at the origin).
arrowAt :: Renderable (Path R2) b => P2 > R2 > Diagram b R2Source
Create an arrow starting at s with length and direction determined by the vector v.
arrowBetween :: Renderable (Path R2) b => P2 > P2 > Diagram b R2Source
arrowBetween s e
creates an arrow pointing from s
to e
with default parameters.
arrowBetween' :: Renderable (Path R2) b => ArrowOpts > P2 > P2 > Diagram b R2Source
arrowBetween' opts s e
creates an arrow pointing from s
to
e
using the given options. In particular, it scales and
rotates arrowShaft
to go between s
and e
, taking head,
tail, and gaps into account.
connect :: (Renderable (Path R2) b, IsName n1, IsName n2) => n1 > n2 > Diagram b R2 > Diagram b R2Source
Connect two diagrams with a straight arrow.
connect' :: (Renderable (Path R2) b, IsName n1, IsName n2) => ArrowOpts > n1 > n2 > Diagram b R2 > Diagram b R2Source
Connect two diagrams with an arbitrary arrow.
connectPerim :: (Renderable (Path R2) b, IsName n1, IsName n2) => n1 > n2 > Angle > Angle > Diagram b R2 > Diagram b R2Source
Connect two diagrams at point on the perimeter of the diagrams, choosen by angle.
connectPerim' :: (Renderable (Path R2) b, IsName n1, IsName n2) => ArrowOpts > n1 > n2 > Angle > Angle > Diagram b R2 > Diagram b R2Source
connectOutside :: (Renderable (Path R2) b, IsName n1, IsName n2) => n1 > n2 > Diagram b R2 > Diagram b R2Source
connectOutside' :: (Renderable (Path R2) b, IsName n1, IsName n2) => ArrowOpts > n1 > n2 > Diagram b R2 > Diagram b R2Source
arrow :: Renderable (Path R2) b => Double > Diagram b R2Source
arrow len
creates an arrow of length len
with default
parameters, starting at the origin and ending at the point
(len,0)
.
arrow' :: Renderable (Path R2) b => ArrowOpts > Double > Diagram b R2Source
arrow' opts len
creates an arrow of length len
using the
given options, starting at the origin and ending at the point
(len,0)
. In particular, it scales the given arrowShaft
so
that the entire arrow has length len
.
Options
ArrowOpts  

headGap :: Lens' ArrowOpts (Measure R2)Source
Distance to leave between the head and the target point.
tailGap :: Lens' ArrowOpts (Measure R2)Source
Distance to leave between the starting point and the tail.
headTexture :: Setter' ArrowOpts TextureSource
A lens for setting or modifying the texture of an arrowhead. For
example, one may write ... (with & headTexture .~ grad)
to get an
arrow with a head filled with a gradient, assuming grad has been
defined. Or ... (with & headTexture .~ solid blue
to set the head
color to blue. For more general control over the style of arrowheads,
see headStyle
.
headStyle :: Lens' ArrowOpts (Style R2)Source
Style to apply to the head. headStyle
is modified by using the lens
combinator %~
to change the current style. For example, to change
an opaque black arrowhead to translucent orange:
(with & headStyle %~ fc orange . opacity 0.75)
.
headLength :: Lens' ArrowOpts (Measure R2)Source
The length from the start of the joint to the tip of the head.
tailTexture :: Setter' ArrowOpts TextureSource
A lens for setting or modifying the texture of an arrow tail.
lengths :: Traversal' ArrowOpts (Measure R2)Source
Set both the headLength
and tailLength
simultaneously.
shaftTexture :: Setter' ArrowOpts TextureSource
A lens for setting or modifying the texture of an arrow shaft.
straightShaft :: Trail R2Source
Straight line arrow shaft.
See Diagrams.TwoD.Arrowheads for a list of standard arrowheads and help creating your own.
module Diagrams.TwoD.Arrowheads