# Re: Draw an arrow

```I works, thanks for the quick reply.

ODTU Deniz Bilimleri Enstitusu
METU Institute of Marine Sciences

On Thu, 19 Dec 2002, Mick Spillane wrote:

>
>
> |____spillane@pmel.noaa.gov____|
> |__Room 2070 Bldg#3 NOAA/PMEL__|
> |____Phone_:_(206)526-6780_____|
>
> On Thu, 19 Dec 2002, Adil Sozer wrote:
> > Is it possible to draw an arrow without using the mouse in ferret
> > by giving the start and end points and the direction.
>
> There are several ways to add arrows to a plot as can be found by
> searching the ferret mail archives
> http://ferret.wrc.noaa.gov/Ferret/Mail_Archives/ferret_mail_archives.html
>
> Here is a way (that may duplicate something already out there)
> The syntax is
> 	go arrow_user 14 3 4 5 6
> or
> 	go arrow_nouser 19 0 0 8 6
> depending on whether the coordinates are in USER or NOUSER units. In the
> first example a thick red line (pen 14) is drawn from (3,4) to (5,6).
> In the second example a WHITE line (pen 19) is drawn from the lowerleft
> (0",0") to the upperright (8",6") assuming standard axes of 8" by 6".
>
> The .jnl files are listed below.  Hope they help.
> Mick
>
> !----------------------------------------------------------------
> ! arrow_user : draws arrow with selected pen given start and end
> !              points in user unit coordinates.  the arrows barb
> !              here is defined as 10% of shaft length at a
> !              constant angle of 30 but these could be modified
> !
> ! usage example:
> !            go arrow_user 19 3 2 6 5
> !       draws a white arrow (pen 14) with tail at (3,2) and head
> !       at (6,5) where the coordinates are in USER UNITS
> !            let x1=i ; let y1=i ; let x2=1.5*i ; let y2=2*i
> !            repeat/i=1:3 (go arrow_user 14 `x1` `y1` `x2` `y2`)
> !       adds a family of three thick red arrows
> !
> ppl pen,1,\$1
> ppl aline,1,\$2,\$3,\$4,\$5
> let shaftlen=((\$2-\$4)^2+(\$3-\$5)^2)^0.5 ! shaft length
> let shaftdir=atan2(\$3-\$5,\$2-\$4)        ! head to tail direction
>
> ! barb definition - customize as desired
> let barbang=30*atan(1.)/45             ! 30 degrees converted to radians
> let barblen=0.1*shaftlen               ! barb length set to 10% of shaft
>
> let barbx1=\$4+barblen*cos(shaftdir+barbang) ! right barb tooking toward tip
> let barby1=\$5+barblen*sin(shaftdir+barbang)
> let barbx2=\$4+barblen*cos(shaftdir-barbang) ! left barb tooking toward tip
> let barby2=\$5+barblen*sin(shaftdir-barbang)
>
> ppl aline,1,\$4,\$5,`barbx1`,`barby1`
> ppl aline,1,\$4,\$5,`barbx2`,`barby2`
>
> !-------------------------------------------------------------
> ! arrow_nouser : draws arrow with selected pen given start and end
> !                points in NONUSER coordinates.  the arrows barb
> !                here is defined as 10% of shaft length at a
> !                constant angle of 30 but these could be modified
> !
> ! usage examples:
> !            go arrow_nouser 19 0 0 8 6
> !       draws a single white arrow (pen 19) with tail at (0,0) and head
> !       at (8,6) where coordinates are NONUSER (inches by default)
> !            let x1=i ; let y1=i ; let x2=1.5*i ; let y2=2*i
> !            repeat/i=1:3 (go arrow_nouser 14 `x1` `y1` `x2` `y2`)
> !       adds a family of three thick red arrows
> !
> ppl pen,1,\$1
> ppl aline/nouser,1,\$2,\$3,\$4,\$5
> let shaftlen=((\$2-\$4)^2+(\$3-\$5)^2)^0.5 ! shaft length
> let shaftdir=atan2(\$3-\$5,\$2-\$4)        ! head to tail direction
>
> ! barb definition - customize as desired
> let barbang=30*atan(1.)/45             ! 30 degrees converted to radians
> let barblen=0.1*shaftlen               ! barb length set to 10% of shaft
>
> let barbx1=\$4+barblen*cos(shaftdir+barbang) ! right barb tooking toward tip
> let barby1=\$5+barblen*sin(shaftdir+barbang)
> let barbx2=\$4+barblen*cos(shaftdir-barbang) ! left barb tooking toward tip
> let barby2=\$5+barblen*sin(shaftdir-barbang)
>
> ppl aline/nouser,1,\$4,\$5,`barbx1`,`barby1`
> ppl aline/nouser,1,\$4,\$5,`barbx2`,`barby2`
>

```