Привлеките стрелку на алгоритме строки

Делает у любого есть алгоритм для привлечения стрелки посреди данной строки. Я искал Google, но не нашел хорошей реализации.

P.S. Я действительно не возражаю против языка, но было бы замечательно, если бы это был Java, так как это - язык, который я использую для этого.

Заранее спасибо.

14
задан nunos 9 June 2010 в 23:54
поделиться

1 ответ

Вот функция для рисования стрелки с острием в точке 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);
}
21
ответ дан 1 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: