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