Оптимизированные векторные фрагменты

В этом документе идёт речь о ПО версии:

  • «Зонд2006» 1.40.0231
  • «Виза2007» 1.40.0063
  • «Конфигуратор Базы Данных» 1.44.0140
Статья в формате PDF 0.4Мб, pdf

При построении изображения векторных фрагментов используются один из двух алгоритмов. Первый, при изменении значения любого параметра изображённого на фрагменте перерисовывается весть фрагмент. Рисование начинается с цвета фона фрагмента, и продолжается пока не будут нарисованы все элементы изображения. Этот алгоритм рисования используется по умолчанию, при высокой сложности фрагмента он сильно нагружает центральный процессор. Второй алгоритм носит название «улучшенная отрисовка», он включается в паспорте векторного фрагмента в программе «Виза2007» явно (см. Рис. 1).

Рис. 1. Паспорт векторного фрагментаРис. 1. Паспорт векторного фрагмента
Алгоритм «улучшенной отрисовки» перерисовывает только элементы изображения, связанные со значениями параметров, которые изменились. При этом действуют принципы:

  • 1. Если элемент изображения имеет прозрачный фон (заливку) и лежит непосредственно на рабочем поле фрагмента (background’е, а не на каком-нибудь еще ином элементе), то подразумевается, что цвет фона элемента будет равен фону фрагмента, т.е. перед отрисовкой значения (цифр, текста) будет выполнена заливка фона элемента цветом фона фрагмента.

    Цвет фона векторного фрагмента задаётся в главном меню программы «Виза2007»: «Редактирование»>«Отображения»>«Свойства схемы» (см. Рис. 2).

    Рис. 2. Задание цвета фона Рис. 2. Задание цвета фона
  • Если изменилось значение параметра связанного с элементом изображения включённого в группу, все элементы группы перерисовываются, начиная от самого нижнего, т.е. ближайшего к фону фрагмента и до самого верхнего.

Такой способ рисования позволяет делать меньше работы и соответственно разгружает центральный процессор. Но для того чтобы изображение оставалось корректным «улучшенные фрагменты» нужно специально рисовать. Вот правила рисования:

  1. 1. Размещайте элементы отображающие значения параметров непосредственно на фоне векторного фрагмента. Не используйте прозрачный фон у элементов-значений параметров в случае если элементы перекрывают друг друга и не сгруппированы.
  2. 2. Если элемент-значение перекрывается другим элементом изображения (наложен или подложен), то они должны быть сгруппированы. Группировка должна производится с учётом последовательности отрисовки. Первым обрисовывается элемент изображения расположенный ближе к фону. Чтобы задать последовательность отрисовки нужно в программе «Виза2007» выделить все перекрывающиеся элементы начиная с верхнего и нажать кнопку «Группировка» в панели инструментов или пункт контекстного меню. Пример такой группировки приведён на Рис. 4, последовательность элементов можно отследить в дереве элементов справа.
  3. 3. Помните, что группировка элементов приводит к росту «нагрузки на отрисовку»: если хоть для одного элемента в группе имеется привязка к БД, то отрисовка будет происходить не только для этого элемента (индивидуально), а для всех элементов в этой группе. Это делается для корректной прорисовки вложенных и перекрытых элементов.

На Рис. 3 показан пример правильной и неправильной отрисовки изображения фрагмента. Элементы первых 3-х строки таблицы сгруппированы, остальные строки нет.

Рис. 3. Правильная и неправильная группировка элементов изображенияРис. 3. Правильная и неправильная группировка элементов изображения
Поясним происходящее. В случае, когда заглавная буква не сгруппирована с оставшейся частью слова, происходит обновления фона прямоугольника заглавной буквы цветом фона фрагмента (т.к. сам фон у буквы прозрачный). Но оставшаяся часть слова не перерисовывается и мы видим что фон буквы (равный фону фрагмента) как бы затирает часть слова. В случае группировки этих двух элементов затирание фона элемента цветом фона фрагмента не делается. Поэтому для корректной отрисовки без артефактов изображения в данном конкретном случае возможны два выхода: либо сузить границы рамки заглавной буквы, чтобы она не наезжала на остальное слово, либо сгруппировать ее в одну группу с оставшейся частью слова.

Рис. 4. Группировка элементов изображенияРис. 4. Группировка элементов изображения
После завершения разработки «улучшенного фрагмента» нужно проверить как он отрисовывается. Для этого в программе «Конфигуратор Базы Данных» нужно отметить базу данных и вызвать контекстное меню «Тестирование векторных фрагментов» (см. Рис. 5). В режиме тестирования в программе «Зонд2006» работает имитация изменения значений параметров. Дискретные параметры последовательно принимают все возможные значения, а значения аналоговых параметров изменяются по синусоидальному закону, изображение фрагмента меняется, при этом происходит интенсивная отрисовка всех элементов изображения связанных со значениями параметров базы данных. В этом режиме можно визуально обнаружить ошибки изображения фрагмента и оценить загрузку центрального процессора компьютера.

Рис. 5. Проверка отрисовки векторных фрагментовРис. 5. Проверка отрисовки векторных фрагментов