Авторитетность издания
Добавить в закладки
Следующий номер на сайте
Программный генератор символов на основе трехмерного массива
Аннотация:
Abstract:
Автор: Джагаров Ю.А. () - | |
Ключевое слово: |
|
Ключевое слово: |
|
Количество просмотров: 12575 |
Версия для печати Выпуск в формате PDF (1.53Мб) |
Для оцифровки горизонтальных осей графика многозначными числами удобно вертикальное расположение цифровой строки. Однако штатные графические средства языковых сред типа QuckBASIC не позволяют изменять как ориентацию цифровой строки, так и размеры цифр, что создает трудности при чтении машинного графика. Использование для этой цели операторов типа DRAW с командами поворота и масштабирования значительно усложняют структуру модуля поворота, делая ее сравнимой по сложности с основным блоком программы построения графика. Кроме этого, размер каждого символа жестко детерминирован и требует для своей реализации отдельной программной позиции. Ниже описан программный генератор символов, позволяющий выводить цифровую строку как в горизонтальной, так и в вертикальной ориентации и устанавливать произвольный размер знаков. Символы синтезируются на основе прямоугольной матрицы пикселей из m строк и m-1 столбца при m ≥ 5. При m < 5 указанная матрица не обеспечивает различимость всех символов. Для реализации возможности изменения размера символа формируется опорный трехмерный целочисленный массив S%(Z,m,m-1). Интерпретируя такой массив, как совокупность, из Z двухмерных массивов m × (m–1) с параметром Z связывается конкретный знак, а с величиной m его размер. Элементам опорных массивов m × (m–1) одноименным с точками матрицы пикселей, участвующим в образовании контура знака, присваивается значение единицы, а остальным элементам – нуль. Для синтеза арабских цифр, знака минус и десятичной запятой значение параметра Z изменяется от 0 до 11. Использование трехмерного массива значительно упрощает адресацию к составляющим его двухмерным массивам, позволяя использовать для этой цели общий принцип обращения к элементу массива. Например, массив S%(Z,m,m-1) при m ≤ 7 может быть выведен на экран полностью следующим образом: CLS : K = 0 FOR R = 0 TO 8 STEP 4 b = R + 3 FOR I = 1 TO m FOR Z = R TO b FOR J = 1 TO m - 1 PRINT S%(Z, I, J); NEXT J IF Z = b THEN PRINT ELSE PRINT " "; NEXT Z, I: LOCATE R + m + 2 + 2 * K, 1 K = K + 2 NEXT R Программный генератор символов состоит из трех блоков: блока формирования опорного массива (фигура 1), блока синтеза контура знака и блока подпрограмм (фигура 2), обслуживающего оба первых блока. Описываемый генератор предназначен для использования в качестве подпрограммы в программе построения графического объекта, рассматриваемой в качестве основной. В связи с этим операторы строк 1 и 2 на фигуре 1 и фигуре 2 показаны с иллюстративной целью, поскольку задаваемые ими операции, как правило, включаются в основной блок. Блоки фигур 1 и 2 могут располагаться как в составе одной подпрограммы, так и отдельно. Блок формирования опорного массива (фигура 1) выполняется один раз при изменении значения переменной m, после
чего синтез цифровой строки выполняется только блоком фигуры 2. Загрузка опорного массива выполняется с помощью подпрограмм a, b и с (фигура 2) блока подпрограмм, формирующих соответственно горизонтальные, вертикальные и диагональные элементы контура символа (при горизонтальном чтении цифровой строки). Здесь индекс I управляет строками, а J столбцами опорных массивов, входящих в состав массива S%. Положение элементов контура, связанное с размерами знака, рассчитывается с помощью параметров St=FIX(m/2) и Sr=m-St (фигура 1), определяющих соответственно столбец и строку опорного массива, участвующих в синтезе данного элемента. Формирование опорного массива выполняется в цикле по параметру Z, значение которого соответствует синтезируемой цифре. Значения Z=10 и Z=11 соответствуют знакам минус и десятичная запятая соответственно. Положение последней в строке зависит от используемого размера символа (число m) и рассчитывается с помощью параметра K=CINT(m+1.4)/3). Входными параметрами для программного генератора символов, помимо числа m, являются: - отображаемое число, переменная C# (фигура 2); - экранные абсцисса и ордината левого нижнего угла цифровой строки (при горизонтальном чтении), переменные X и Y; - параметр ориентации, переменная Dr; Dr=0 соответствует горизонтальному, а Dr=1 вертикальному расположению цифровой строки. Способ ввода названных параметров определяется логикой основной программы, формирующей графический объект. Формирование горизонтальной строки выполняется с помощью подпрограммы G, а вертикальной – подпрограммы V, обслуживающих блок синтеза знака. Горизонтальное расположение строки выполняется путем чтения опорного массива по строкам и столбцам от значений индексов I и J, cоответствующих единице, до значений I=m и J=m-1. Формирование строки и межзнакового интервала выполняется оператором PSET(X+J-1,Y+I-1). Для символа «1» межзнаковый интервал корректируется в строках 3 и 4 (фигура 2). Вертикальная строка формируется путем чтения опорного массива по столбцам от значения индекса J=1 до значения J=m-1 и по строкам от значения I=m до значения I=1. Строка и межзнаковый интервал формируются с помощью оператора PSET(X+m-I,Y+J-1). На фигуре 3 изображен пример графика, оси которого оцифрованы описанным программным генератором. Размер знаков оцифровки для горизонтальной оси соответствует m=5, вертикальной m=6. Размер знаков цифровой строки в левом верхнем углу соответствует m=9. Символы “X”, “Y” и “Фиг.3” получены штатными средствами с помощью оператора PRINT. |
Постоянный адрес статьи: http://swsys.ru/index.php?id=890&page=article |
Версия для печати Выпуск в формате PDF (1.53Мб) |
Статья опубликована в выпуске журнала № 3 за 2000 год. |
Возможно, Вас заинтересуют следующие статьи схожих тематик:
- Алгоритмы и процедуры построения билинейных моделей непрерывных производств
- Подход к выбору оптимального маршрута при перевозке крупногабаритных грузов на основе нейросетевых технологий
- Интеллектуальная поддержка реинжиниринга конфигураций производственных систем
- Системы компьютерной поддержки процессов анализа, синтеза и планирования решений в условиях неопределенности
- Компьютер - хранитель домашнего очага
Назад, к списку статей