Как отображаются заполненные пути?

Какие стандартные алгоритмы используются в векторной графике для рендеринга заполненных путей?

Меня интересует не только процесс рендеринга штрихов, я также хотел бы знать, как фигуры заполняются - как определяется, находится ли заданная точка внутри или вне траектории (я верю, даже указывая правила того, что внутри и снаружи). значит не простая вещь).

1 ответ

Решение
  1. найти контур (периметр в виде многоугольника)

    это я думаю у тебя уже есть

  2. триангуляция (или разрезание на выпуклые многоугольники)

    Есть много подходов, таких как:

    • клип ухо
    • Делоне

    см. триангуляцию вики-полигонов

  3. заполнить выпуклые треугольники / многоугольники

    это легко либо использовать

  4. стиль

    Этот материал сложнее, чем кажется на первый взгляд. За:

    1. ширина контура pen,stroke

      преобразовать контур в многоугольник, сдвинув его наружу или внутрь.

    2. стиль контура pen,stroke

      full, dash dot, dot dot,... для получения дополнительной информации см. это

    3. стиль заполнения brush

      как штриховка, которая сложнее всего из всех. Он включает в себя тяжелую полигонную настройку, похожую, но гораздо более сложную, чем ширина контура. Некоторые стили проще, некоторые чрезвычайно сложны, например, для простого эквидистантного заполнения строки loop + intersection + inside polygon test will делать. Для проверки полигона внутри вы можете использовать тест на попадание

Другие вопросы по тегам