Вот функция для рисования стрелки с головой в точке p.Вы бы установили это на середину вашей линии.dx и dy - направление линии, которое определяется выражением (x1 - x0, y1 - y0).Это даст стрелку, которая масштабируется до длины линии.Нормализуйте это направление, если хотите, чтобы стрелка всегда была одинакового размера.
private static void DrawArrow(Graphics g, Pen pen, Point p, float dx, float dy)
{
const double cos = 0.866;
const double sin = 0.500;
PointF end1 = new PointF(
(float)(p.X + (dx * cos + dy * -sin)),
(float)(p.Y + (dx * sin + dy * cos)));
PointF end2 = new PointF(
(float)(p.X + (dx * cos + dy * sin)),
(float)(p.Y + (dx * -sin + dy * cos)));
g.DrawLine(pen, p, end1);
g.DrawLine(pen, p, end2);
}