void ArrowHead()
/*
    Jaxodraw style arrows
*/
{
    int k;
    double length;
    SaveGraphicsState;
    if ( flip ) length = -arrow.length;
    else        length =  arrow.length;
    SetDashSize(0,0);
    if ( arrow.stroke ) {
        SetLineWidth(arrow.stroke);
        for (k = 1; k <= 2; k++ ) {
            SaveGraphicsState;
            MoveTo(length*0.5,0);
            LineTo(-length*0.5,arrow.width);
            LineTo(-length*0.5+length*arrow.inset,0);
            LineTo(-length*0.5,-arrow.width);
            if (k == 1) {
                SetBackgroundColor(NONSTROKING);
                outpos += sprintf(outpos," h f");
            }
            else {
                outpos += sprintf(outpos," s");
            }
            RestoreGraphicsState;
        }
    }
    else {
        MoveTo(length*0.5,0);
        LineTo(-length*0.5,arrow.width);
        LineTo(-length*0.5+length*arrow.inset,0);
        LineTo(-length*0.5,-arrow.width);
        outpos += sprintf(outpos," h f");
    }
    RestoreGraphicsState;
}