Ecco una funzione per disegnare una freccia con la testa in un punto p. Lo imposteresti nel punto medio della tua linea. dx e dy sono la direzione della linea, che è data da (x1 - x0, y1 - y0). Questo darà una freccia che è ridimensionata alla lunghezza della linea. Normalizza questa direzione se vuoi che la freccia abbia sempre le stesse dimensioni.
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);
}
Si tratta di una freccia che punta al centro di una linea? O venendo da esso? O una punta di freccia che corre lungo la linea? –
uno che corre lungo la linea. – nunos