(Л
с
Изобретение относится к устройствам вычислительной техники, используемым при проектировании устройств отображения.
По основному авт. св. № 991486 известно устройство для формирования окружности, которое содержит блок управления, регистр, выход которого соединен с одним входом блока деления, другой вход которого соединен с одним из выходов блока управления, другим йыходом и одним из входов подключенного к счетчику адреса, третий выход блока управления соединен с одним из входов блока регистров второй вход которого подключен к второму выходу счетчика адреса, третий вход соединен с выходом блока, деления, а выход подключен к одному из входов мультиплексора, выход которого соединен с одним из входов сумматора, другим входом подключенного к четвертому выходу блока управления а третьим входом к соответствунщему выходу анализатора знака координат, другой выход которого и один из входов соединены с блоком управления, соответствующим выходом подключенным к входу блока постоянной памяти, выход которого соединен с вторым входом мультиплексора, третьим входом подключенного к выходу регистра, второй вход блока постоянной памяти подключен к выходу счетчика узлов интерполяции, соединенного с анализатором знака координат, третий вход блока постоянной памяти подключен к выходу триггера, соединенного с блоком управления, соответствующим выходом подключенным к входу триггера, вьпсад которого соединен с входом линейного интерполятора, другим входом подключенного к выходу сумматора, а третьим входом и одним из выходов - к блоку управления l.
Недостатком устройства является низкое быстродействие при интерполировании окружности радиусом, меньшим К,, обусловленная тем, что аппроксимация дуги окружности производится путем построения определенного количества хорд для окружности с максимальным радиусом, вследствие чего устройство при интерполировании окружности с радиусом, меньшим максимального, аппроксимирующейся меньшим количеством хдрд, производит вычисление координат всех интерполяционных узлов и интерполяцию всех
хорд, снижая этим производительность устройства.
Цель изобретения - повышение быстродействия.
Поставленная.цель достигается тем, что в устройство введен второй блок постоянной памяти, первый вход которого соединен с выходом регистра, второй вход - с выходом счетчика узлов интерполяции, а выход подключен к третьему входу первого блока постоянной памяти и к второму входу анализатора знака координат.
Введение второго блока постоянной
памяти позволяет оптимально, в зависимости от радиуса окружности, производить аппроксимацию дуги окружности, снижая при этом время интерполирования окружности.
На фиг. 1 представлена блок-схема предлагаемого устройства; на фиг.2 кусочно-линейная аппроксимация дуг окружностей различного радиуса; на фиг. 3 - определение проекции радиуса на ось абсцисс X; на фиг. 4 - элемент окружности в дискретном пространстве; на фиг. 5 - таблица значений координат точек прямых, аппроксимирующих окружность для R
Ь 1 мм.
Устройство для формирования окружностей содержит блок 1 управления, регистр 2, выход которого соединен с одним входом блока 3 деления, другой вход которого соединен с одним из выходов блока 1 управления, другим выходом и одним из входов подключенного к счетчику 4, третий выход блока 1 управления соединен с
ОДНИМ из входов блока 5 регистров, второй вход которого подключен к второму выходу счетчика 4, третий вход соединен с выходом блока 3 деления, а выход подключен к одному из входов
мультиплексора 6, выход которого соединен с одним из входов блока 7 суммирования, другим входом подключенного к четвертому выходу блока 1 управления, а третьим входом - к соответствующему выходу анализатора 8 знака координат, другой выход которого и один из входов соединены с блоком 1 управления, соответствующим выходом подключенным к входу блока 9 постоянвой памяти, выход которого соединен с вторым входом мультиплексора 6, третьим входом подключенного к выходу регистра 2, второй вход блока 9 постоянной памяти подключен к 1 выходу блока 10 постоянной памяти, вход которого соединен с выходом счетчика 11 узлов интерполяции, входом подключенного к третьему выходу анализатора 8 знака координат, вторым входом соединенного с выходом блока 10 постоянной памяти, второй вход которого подаслючен к выходу регистра 2, третий вход блока 9 постоянной памяти подключен к выходу триг гера 12, соединенного с блоком 1 управления, соответствующим выходом подключенньм к входу триггера 13, выход которого соединен с входом линейного интерполятора 14, другим вхо дом подключенного к выходу блока 7 суммирования, а третьим входом и одним из выходов - к блоку 1 управления. Блок 1 управления предназначен для управления работой блоков уст.ройства и выполняет следующие функции: устанавливает в исходное состояние счетчик 4, анализатор. 8 знака координат, триггеры 12 и 13, управляет работой блока 3 деления, счетчика 4 адреса и блока 5 регистров; управляет работой блока 7 суммирования , триггеров 12 и 13, анализатора 8 знака координат, линейного интерполятора 14; формирует код слагаемого алгебраической суммы для блока 9 постоянной памяти. Регистр 2 предназначен для хранения сдвинутых значений кода радиуса. Блок 3 деления предназначен для деления кода радиуса окружности на 2 4, 8, 16 и т.д. в зависимости от тре буемой точности построения окружности Счетчик 4 предназначен для формирования кода адреса соответствующего р гистра блока 5 регистров. Блок 5 регистров предназначен для хранения сдвинутых значений кода радиуса. Мультиплексор 6 обеспечивает передачу информахщи с адресуемого входа на выход. Блок 7 суммирования предназначен для сложения величин, необходимых для определения кодов проекций радиуса на оси координат. Анализатор 8 знака координат упра ляет работой счетчика 11 узлов интер поляции, при переходе из одного квадранта в другой корректирует знак и результат блока 7 суммирования, выг55 дает в блок 1 управления сигнал, соответствующий координате первого удла интерполяции в квадранте, и сиг88соответствующий координате последнего узла интерполяции в четвертом квадранте. Блок 9 постоянной памяти предназначен для формирования адреса слагаемых алгебраических сумм, соответствующих проекции радиуса на оси координат для узлов интерполяции. Блок 10 постоянной памяти формирует код узла интерполяции в зависимости от значения кода радиуса и кода счетчика 11. При равенстве значения кода узла интерполяции 0-му и ц-му узлам интерполяции вьфабатывает соответствукнцие сигналы в анализатор 8 знака координат. Счетчик 11 узлов интерполяции предназначен для подсчета единичных импульсов как в прямому так и в обратном направлении. Триггер 12 осуществляет выбор абсциссы или ординаты вычисляемой координаты. В исходном состоянии производит выбор абсциссы, изменяет состояние на противоположное после вычисления абсциссы (ординаты) и занесения ее а линейный интерполятор 14. Триггер 13 предназначен для управления записью в линейный интерполятор 14 координат начала и конца отрезка. В исходном состоянии управляет записью координаты начала отрезка, изменяет состояние на противолоположное после вычисления ординаты узла интерполяции и занесения ее значения в линейный интерполятор 14. Линейный интерполятор 14 представ„ „ yerpu«u-r«u „„..,.и..„ляет собой устройство для интерполирования прямой в заданном дискретном пространстве, заданной координатами вечных точек отрезка. Предлагаемое устройство работает следующим образом. Аппроксимация дуги окружности производится путем построения определённого количества отрезков прямых, соединяющих узловые точки О, Г, 2, ..., П (фиг. 2). Число отрезков прямых m, аппроксимирующих окружность, определяется в зависимости от требуемой точности построения окружности. Построение осуществляется для максимальной для данной аппаратуры окружности радиуса R . Координаты узловых точек определяются путем вычисления абсцисс: где Xft 1г;сое«(„; 06п угол, образованный радиусом окружности и осью абсцисс (ot, 1п) ,, 0 1.2.4,8,.. и определения точного значения ординат Y, , соответствующих абсциссам Х по формуле ,,, где Oi К„б1 - коэффициент, порядок которого зависит от значения радиуса и точности нахождения ординаты 8 (Ю для заданного дискретного пространства (фиг. 3 и 4). В качестве приближения к определяются значения 4n. Rtn где „ - коэффициент, путем разложения в ряд V Т - - , где{„еРп ;D 1,2,4,8 При этом должно соблюдаться условие ),,; где 8(Ь) - заданная точность нахождения ординаты для данного дискретного пространства. Приближение к условию (3) выполняется итеративно. Таким образом, значения координа узловых Точек окружности для первог квадранта могут быть представлены в виде алгебраической суммы слагаемых, которые, представляют собой коды, полученные путем сдвига кода ра диуса на определенное число разрядов. Выражения для определения кодов проекций радиуса на оси координат дХ и &Y в различных квадрантах окруж ности в дискретном пространстве им ют следующий вид: ЛХ«-() 2 квадрант (6 4 п лУ (Xrt) 3 квадрант (7 а -(Y + 1) . лХ Хи 4 квадрант ( AV«-(n+1) Сигнал запуска, поступающий на вход блока 1 управления и регистр устанавливает в исходное нулевое с тояние анализатор 8 знака координа 86 счетчик 11 узлов интерполяции, счет чик 4, триггеры 12 и 13. Код радиуса, записанньй в регистр 2, поступает в блок 3 деления, который осуществляет деление кода радиуса окружности на 2, 4, 8, 16 и т.д. в зависимости от требуемой точности построения окружности путем сдвига его на определенное число разрядов. Результат деления после каждого сдвига запоминается в блоке регистров 5. Счетчик 4 под действием единичных импульсов, формируемых в процессе сдвига кода радиуса, образует код адреса соответствующего регистра блока 5 регистров. При равенстве кода числа, записанного в счетчике 4, числу регистров 5, сигнал, формируемый на выходе счетчика 4, поступает в блок 1 управления. Информационные.. сигналы, соответствующие прямым и обратным значениям кода радиуса, из блока 5 регистров поступают на вход мультиплексора 6, обеспечивающего передачу информации с адресуемого входа на выход. По сигналам, формируемым блоком 1 управления, триггером .12, счетчиком 11 и блоком 10 постоянной памяти, из блока 9 постоянной памяти на адресный вход мультиплексора 6 поступает сигнал, соответствующий адресу коммутируемого входа мультиплексора, по которому код соответствукяцего слагаемого поступает на вход блока 7 суммирования, который производит сложение составляющих для определения кодов проекций радиуса окружности на оси координат согласно выражению (1) и округление результата. Результат, соответствующий кода абсциссы нулевого узла интерполяции, заносится в линейный интерполятор 14. Триггер 12 устанавливается в состояние, при котором на его выходе появляется сигнал, запускающий блок 7 суммирования, который осуществляет процесс вычисления кода ординаты аналогично определению кода , абсцисс. Результат запоминается в линейном интерполяторе 14. Триггер 13 устанавливается в состояние, при котором он вццает сигнал, управпяющиА записью координаты конца (начала) отрезка. Анализатор 8 знака координат изменяет состояние счетчика 11 узлов интерполяции на единицу.
После вычисления и занесения в линейный интерполятор 14 абсциссы и ординаты первого узла интерполяции блок 1 управления вьщает сигнал в линейный интерполятор 14, по которому начинается процесс отображения окружности. Одновременно происходит определение абсцисс и ординаты второго (последующего) узла интерполяции и т.д.
В зависимости от того, в каком квадранте находится узел интерполяции, анализатор 8 знака координат управляет блоком 7 суммирования в соответствии .с выражениями (6), (7) (8), изменяя знак и корректируя величину проекции радиуса на ось координат .
Процесс формирования координат заканчивается при формировании блоком 10 сигнала постоянной памяти, соответствующего 0-му узлу интергголяции, фиксируемого анализатором 8 знака координат в четвертом квадранте , записи координат последнего узла интерполяции в линейньй интерполятор 14 и отображения им последнег аппроксимирукщего отрезка.
Рассмотрим случай определения координат первого узла интерполяции () для конкретных значений величин ft 100 мм,h 1 мм, S {h)0,5, при которых .
, Д, «-со5
360°
где ot 45
.(7, X, 100 cos 7,,1;
R;
128
Y R M 8
Значение остальных координат узлов интерполяция для построения окружности данного радиуса приведены в таблице (фиг. 5).
По сравнению с устройством-прототипом применение предлагаемого технического решения позволяет повысить быстродействие интерполяции окружности вследствие оптимальной аппроксимации дуги окружности в диапазоне изменения радиуса от нуля до Р.
УУЛЫ (мтерполлции
Фш.1
название | год | авторы | номер документа |
---|---|---|---|
Устройство для формирования окружностей | 1981 |
|
SU991486A1 |
Устройство для формирования окружностей | 1984 |
|
SU1221678A2 |
Устройство для формирования растрового изображения кривых | 1986 |
|
SU1446646A1 |
Устройство для формирования окружностей | 1985 |
|
SU1322361A2 |
Многокоординатный линейно-круговой интерполятор | 1988 |
|
SU1603345A1 |
Цифровой линейный интерполятор | 1991 |
|
SU1807450A1 |
Линейно-круговой интерполятор | 1985 |
|
SU1259218A1 |
Линейный интерполятор | 1986 |
|
SU1413603A1 |
Устройство поворота изображения на экране телевизионного приемника | 1989 |
|
SU1755298A1 |
Устройство для программного управления электроприводом | 1985 |
|
SU1260919A1 |
УСТРОЙСТВО ДЛЯ ФОРМИРОВАНИЯ ОКРУЖНОСТЕЙ по авт. св. № 991486, отличающееся тем что, с целью повьшения быстродействия, в него введен второй блок постоянной памяти, первый вход которого соединен с выходом регистраi второй вход - с выходом счетчика узлов интерполяции, a выход подключен к третьему входу первого блока постоянной памяти и к второму входу анализатора знака координат.
Cput.
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
Устройство для формирования окружностей | 1981 |
|
SU991486A1 |
Разборный с внутренней печью кипятильник | 1922 |
|
SU9A1 |
Авторы
Даты
1984-06-07—Публикация
1983-01-03—Подача