Straight Line;
BoundingRectangle(1,1);

ArrowRight;

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

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

ArrowEnd;


ArrowLeft;

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

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

ArrowEnd;


ArrowUp;

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

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

ArrowEnd;


ArrowDown;

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

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

ArrowEnd; 