Straight Line;
BoundingRectangle(1,1);

//*****************************
ArrowRight;

// Draw the line of the arrow.
MoveTo(startx,starty);
LineTo(endx,endy);

// Draw the arrow head.
MoveTo(endx -2*grid,endy);
LineTo(endx,endy +grid);
MoveTo(endx -2*grid,endy);
LineTo(endx,endy -grid);

ArrowEnd;


//*****************************

ArrowLeft;

// The start of an arrow is always on the left.

// Draw the line of the arrow.
MoveTo(endx,endy);
LineTo(startx,starty);

// Draw the arrow head.
MoveTo(startx +2*grid,starty);
LineTo(startx,starty+grid);
LineTo(startx +2*grid,starty);
LineTo(startx,starty -grid);

ArrowEnd;

//****************************

ArrowUp;

// The start of the arrow is on the top.

// Draw the line of the arrow.
MoveTo(endx,endy);
LineTo(startx,starty);

// Draw the arrow head.
MoveTo(startx,starty -2*grid);
LineTo(startx -grid,starty);
MoveTo(startx,starty -2*grid);
LineTo(startx +grid,starty);

ArrowEnd;


//******************************

ArrowDown;

// Draw the line of the arrow.
MoveTo(startx,starty);
LineTo(endx,endy);

// Draw the arrow head.
MoveTo(endx,endy +2*grid);
LineTo(endx -grid,endy);
MoveTo(endx,endy +2*grid);
LineTo(endx +grid,endy);

ArrowEnd;
 