Voici une fonction pour dessiner une flèche avec sa tête en un point p. Vous placeriez ceci au milieu de votre ligne. dx et dy sont la direction de la ligne, qui est donnée par (x1 - x0, y1 - y0). Cela donnera une flèche qui est mise à l'échelle de la longueur de la ligne. Normalisez cette direction si vous voulez que la flèche soit toujours de la même taille.
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);
}
Est-ce une flèche pointant vers le milieu d'une ligne? Ou en venant? Ou une pointe de flèche qui court le long de la ligne? –
celui qui court le long de la ligne. – nunos