Еще в FastReport .NET 2018 в отчетах появилась векторная графика начального уровня. Это были полигоны и кривые. Можно было строить сложные фигуры, но все кривые были прямыми. В версии 2019, наконец появились кривые Безье – а значит, и полноценная векторная графика. Теперь мы можем создавать любые фигуры. Давайте рассмотрим обновления детально.
Прежде всего вы заметите отличие от предыдущих версий на верхней панели свойств. На вкладке Home появился раздел Polygon.
Раньше нам был доступен набор действий с полигоном/ломаной, который появлялся над фигурой при ее выделении:
Эти элементы управления позволяли: перемещать точки, добавлять линию в начало, добавлять линию в конец, добавлять точки.
С появлением кривых Безье пришлось переработать концепцию редактирования векторного объекта. Каждая точка на кривой теперь имеет векторы, задающие искривление. Если это ломаная, а не фигура, то крайние точки имеют по одному вектору, все остальные – по два, чтобы настраивать искривление до и после точки.
Но, вернемся к новой панели инструментов Polygons. Рассмотрим его элементы:
Рассмотрим, как использовать эти элементы управления на примерах создания ломаной
Ломаная изначально задается точками, не имеющими векторов искривления:
Если раньше вы могли добавлять линии только в начало или конец, то сейчас достаточно выбрать в режиме редактирования
Если же вы захотели сделать ломаную кривой Безье, то необходимо перейти в режим
Находясь в этом режиме, вы можете инициализировать кривую Безье, выбрав точку на ломаной и изменив направление вектора искривления для нее:
Чтобы изменить искривление отрезка, проведенного в выделенную точку, наводим курсор мыши на синюю точку вектора исходящего из выделенной точки в сторону предыдущей точки. Вы можете изменять не только угол наклона вектора, но и его длину, это также будет влиять на искривление отрезка. Аналогично задается искривление для отрезка проведенного из выделенной точки.
После этого, в любом режиме редактирования фигуры, измененная точка будет отображаться с векторами искривления.
Если вы захотите избавиться от кривой Безье в своей ломаной, то придется удалить эту точку в режиме удаления
Для удаления точки переходим в режим
и, просто выбираем курсором мыши точку, которую нужно удалить. При этом, отрезки, подходящие к этой точке, будут также удалены, а соседние с удаленной точки будут соединены новым отрезком.
В ситуации с полигоном все ровно то же самое. То есть изначально все точки на фигуре не имеют настроек искривления отрезка.
Для создания полигона кривыми Безье, переходим в режим
Если вы изменили положение вектора настройки искривления для точки, то с этого момента в любом режиме редактирования эти настройки будут доступны. То есть, чтобы вернуть отрезок к изначальному режиму прямой линии, точку придется удалить и добавить заново.
Стоит отметить, что рисовать кривыми без должной практики довольно долгое занятие. Даже создавая такую простую фигуру:
Поэтому, в следующей статье мы рассмотрим, как создавать векторные объекты в отчете из кода приложения, или скрипта отчета.