Изобретение относится к специализированным устройствам вычислительной техники и может быть использовано для контроля факта пересечения вектора, проходящего через две заданные точки на плоскости (траектории пролета летательного аппарата, маршрута движения наземного транспорта) с ребрами контура, заданного прямоугольными координатами вершин (участка зараженной местности).
Известно устройство, содержащее блок задания координат [1]. Его недостатком являются относительно узкие функциональные возможности.
Наиболее близким по технической сущности к предлагаемому является устройство, содержащее регистры, блоки сдвига, элементы И, ИЛИ [2]. Его недостатком являются относительно узкие функциональные возможности, обусловленные тем, что оно позволяет определять координаты вектора на плоскости, но не позволяет контролировать факт пересечения вектора с ребрами контура, заданного прямоугольными координатами вершин.
Цель изобретения - расширение класса решаемых задач за счет возможности факта пересечения вектора с ребрами контура, заданного прямоугольными координатами вершин.
Цель достигается тем, что в устройство, содержащее два регистра и два элемента ИЛИ, введены последовательно соединенные блок обработки исходных данных, второй вход, а также первая и вторая группы входов которого являются соответственно входом, первой и второй группами входов устройства, первый блок вычисления коэффициентов, первый, второй и третий выходы которого соединены соответственно с четвертым, пятым и шестым входами блока вычисления координат, первый узел вычисления определителя, первый и четвертый входы которого соединены соответственно с первым и вторым выходами второго блока вычисления коэффициентов, блок сравнения с нулем, на второй вход которого подается код "0", а прямой его выход соединен с управляющим входом блока вычисления координат, первый, второй и третий входы которого соединены с одноименными выходами второго блока вычисления коэффициентов, входы которого соединены с выходами одноименных регистров, а также с одноименными входами второго блока анализа, первый выход которого соединен с вторым входом первого узла выделения максимального числа, первый вход которого соединен с одноименным выходом первого блока анализа, входы которого соединены соответственно с вторым, третьим, четвертым и пятым выходами блока обработки исходных данных, первый вход которого соединен с выходом второго элемента ИЛИ, первый вход которого соединен с инверсным выходом блока сравнения, а второй вход - с инверсным выходом блока сравнения, с нулем, первый вход которого соединен с седьмым входом блока вычисления координат, выходы которого соединены соответственно с вторым и пятым входами блока сравнения, третий вход которого соединен с выходом первого узла выделения минимального числа, первый вход которого соединен с вторым выходом первого блока анализа, третий выход которого соединен с первым входом второго узла выделения максимального числа, выход которого соединен с четвертым входом блока сравнения, первый вход которого соединен с выходом первого узла, выделения максимального числа, а шестой вход - с выходом второго узла выделения минимального числа, первый вход которого соединен с четвертым выходом первого блока анализа, а второй вход - с четвертым выходом второго блока анализа, второй выход которого соединен с одноименным входом первого узла выделения минимального числа, а третий выход - с вторым входом второго узла выделения максимального числа, прямой выход блока сравнения соединен с управляющим входом второго ключа, на информационный вход которого подается код "1", выход второго ключа соединен с вторым входом первого элемента ИЛИ, первый вход которого соединен с выходом первого ключа, на информационный вход которого подается код "0", а управляющий вход данного ключа соединен с первым выходом блока обработки исходных данных, входы первых четырех регистров являются входами устройства, а выход первого элемента ИЛИ является выходом устройства.
Анализ научно-технической литературы показал, что отсутствуют устройства с указанной совокупностью признаков. Следовательно, предложение отвечает критерию новизны.
Кроме того, цель изобретения достигается всей введенной совокупностью признаков, которая в известной литературе не обнаружена. Следовательно, предложение отвечает критерию существенных отличий.
На фиг. 1 представлена структурная схема устройства для векторных вычислений; на фиг. 2 - блока обработки исходных данных; на фиг. 3 - блока задания координат; на фиг. 4 - блока вычисления коэффициентов; на фиг. 5 - узла вычисления определителя; на фиг. 6 - блока вычисления координат; на фиг. 7 - блока анализа; на фиг. 8 - узла выделения максимального числа; на фиг. 9 - узла выделения минимального числа; на фиг. 10 - блока сравнения. Устройство (фиг. 1) содержит последовательно соединенные блок 1 обработки исходных данных, второй вход, а также первая I и вторая II группы входов которого являются соответственно входом, первой и второй группами входов устройства, первый блок 2-1 вычисления коэффициентов, первый, второй и третий выходы которого соединены соответственно с четвертым, пятым и шестым входами блока 4 вычисления координат, первый узел 3-1 вычисления определителя, первый и четвертый входы которого соединены соответственно с первым и вторым выходами второго блока 2-2 вычисления коэффициентов, узел 5-1 сравнения с нулем, на второй вход которого подается код "0", а прямой выход соединен с управляющим входом блока 4 вычисления координат, первый, второй и третий входы которого соединены с одноименными выходами второго блока 2-2 вычисления коэффициентов. Входы блока 2-2 соединены с выходами одноименных регистров 12-1-12-4, а также с одноименными входами второго блока 6-2 анализа, первый выход которого соединен с вторым входом первого узла 7-1 выделения максимального числа. Первый вход узла 7-1 соединен с одноименным выходом первого блока 6-1 анализа, входы которого соединены соответственно с вторым, третьим, четвертым и пятым выходами блока 1 обработки исходных данных. Первый вход блока 1 соединен с выходом второго элемента ИЛИ 11-2, первый вход которого соединен с инверсным выходом блока 9 сравнения, а второй вход - с инверсным выходом узла 5-1 сравнения с нулем. Первый вход узла 5-1 соединен с седьмым входом блока 4 вычисления координат, выходы которого соединены соответственно с вторым и пятым входами блока 9 сравнения. Третий вход блока 9 соединен с выходом первого узла 8-1 выделения минимального числа, первый вход которого соединен с вторым выходом первого блока 6-1 анализа. Третий выход блока 6-1 соединен с первым входом второго узла 7-2 выделения максимального числа, выход которого соединен с четвертым входом блока 9 сравнения. Первый вход блока 9 соединен с выходом первого узла 7-1 выделения максимального числа, а шестой вход - с выходом второго узла 8-2 выделения минимального числа, первый вход которого соединен с четвертым выходом первого блока 6-1 анализа, а второй вход - с четвертым выходом второго блока 6-2 анализа. Второй выход последнего соединен с одноименным входом первого узла 8-1 выделения минимального числа, а третий выход - с вторым входом второго узла 7-2 выделения максимального числа. Прямой выход блока 9 сравнения соединен с управляющим входом второго ключа 10-2, на информационный вход которого подается код "1". Выход второго ключа 10-2 соединен с вторым входом первого элемента ИЛИ 11-1, первый вход которого соединен с выходом первого ключа 10-1, на информационный вход которого подается код "0", а управляющий вход соединен с первым выходом блока 1 обработки исходных данных. Входы первых четырех регистров 12-1-12-4 являются входами устройства, а выход первого элемента ИЛИ 11-1 является выходом устройства.
Блок 1 обработки исходных данных (фиг. 2) содержит первую 16-1-16-N и вторую 17-1-17-N группы регистров, четыре узла 13-1-13-4 задания координат, счетчик 18, пять регистров 12-5-12-9, два узла 5-2 и 5-3 сравнения, третий ключ 10-3, первый вычитатель 18-1 и два дешифратора 19-1 и 19-2.
Блок 13-i задания координат (фиг. 3) содержит группу ключей 14-1-14-N и многовходовый элемент ИЛИ 15.
Блок 2-i вычисления коэффициентов (фиг. 4) содержит второй 18-2 и третий 18-3 вычитатели, первый 20-1 и второй 20-2 инверторы, первый 21-1 и второй 21-2 умножители, первый сумматор 22-1.
Узел 3-i вычисления определителя (фиг. 5) содержит третий 21-3 и четвертый 21-4 умножители, а также четвертый вычитатель 18-4.
Блок 4 вычисления координат (фиг. 6) содержит группу 24 ключей с одним управляющим входом, второй 3-2 и третий 3-3 узлы вычисления определителя, первый 23-1 и второй 23-2 делители.
Блок 6-i анализа (фиг. 7) содержит третий 8-3 и четвертый 8-4 узлы выделения минимального числа, третий 7-3 и четвертый 7-4 узлы выделения максимального числа.
Узел 7-i выделения максимального числа (фиг. 8) содержит четвертый узел 5-4 сравнения, четвертый 10-4 и пятый 10-5 ключи, третий элемент ИЛИ 11-3 и десятый регистр 12-10.
Узел 8-i выделения минимального числа (фиг. 9) содержит пятый узел 5-5 сравнения, шестой 10-6 и седьмой 10-7 ключи, четвертый элемент ИЛИ 11-4 и одиннадцатый регистр 12-11.
Блок 9 сравнения (фиг. 10) содержит четыре узла 5-6-5-9 сравнения и многовходовый элемент И 25.
Работает устройство следующим образом.
Предварительно опишем последовательность контроля факта пересечения вектора с ребрами контура, заданного прямоугольными координатами вершин, которая реализуется устройством.
Определяются коэффициенты уравнения прямой (вектора), проходящей через две заданные точки с координатами соответственно Х1, Y1 и Х2, Y2 по следующим формулам:
A1 = Y2 - Y1; (1)
B1 = -(X2-X1); (2)
C1 = -(A1˙X1 + B1˙Y1) (3)
Выбирается очередное ребро контура (последовательно с первого до последнего, причем контроль прекращается при первом же обнаруженном факте пересечения), соединяющее (j - 1)-ю и j-ю вершины контура.
Определяются коэффициенты уравнения прямой, проходящей через эти вершины контура с координатами соответственно VX(j-1), VY(j-1) и VX(j), VY(j), по следующим формулам:
A2 = VY(j) - VY(j-1); (4)
B2 = -[VX(j) - VX(j - 1)]; (5)
C2 = -[A2˙VX(j - 1) + B2˙VY(j - 1)] (6)
Осуществляется проверка на неравенство определителя нулю по формуле
А1˙В2 - А2˙В1≠0 (7)
Если условие (7) выполняется, то определяют координаты (Хt, Yt) точки пересечения двух прямых по следующим формулам
Xt = (B1˙C2 - B2˙C1)/(A1˙B2 - A2˙B1)
(8)
Yt = (C1˙A2 - C2˙A1)/(A1˙B2 - A2˙B1)
(9)
Определяются области Хmin, Xmax, Ymin, Ymax нахождения точки пересечения вектора и рассматриваемого ребра контура по следующим формулам:
Xmin = max(min(X1, X2), min(VX1, VX2));
(10)
Xmax = min(max(X1, X2), max(VX1, VX2));
(11)
Ymin = max(min(Y1, Y2), min(VY1, VY2));
(12)
Ymax = min(max(Y1, Y2), max(VY1, VY2)).
(13)
Осуществляется проверка условия (Xmin < Xt) ∧ (Xt < Xmax) (Ymin < Yt) ∧ (Yt < Ymax) (14)
Если условие (14) выполняется, на выход устройства выдается код "1", что свидетельствует о наличии факта пересечения вектора с контуром. При этом контроль прекращается.
Если условие (14) не выполняется, то выбирается следующее ребро контура, проводятся все необходимые вычисления и проверки, начиная с (4).
Если после рассмотрения всех ребер контура ни с одним из них вектор не пересекается, то на выход устройства выдается код "0", свидетельствующий о факте непересечения вектора с контуром. Под контуром понимают замкнутый ряд прямолинейных непересекающихся отрезков.
Рассмотренный выше алгоритм реализуется в устройстве следующим образом.
Перед началом работы устройства (фиг. 1) в счетчике 18 блока 1 обработки исходных данных (фиг. 2) записано число j = 1. Все ключи 10-1 - 10-7, группа ключей 14-1-14-N и ключ 25 закрыты.
В момент включения устройства на второй вход блока 1 обработки исходных данных подается число N (количество вершин контура, которых должно быть не менее трех), которое записывается в пятый регистр 12-5. Одновременно с этим на первую и вторую группы входов блока 1 обработки исходных данных подаются соответственно координаты VX(j), j = , и VY(j), j = вершин контура и записываются соответственно в регистры 16-1 - 16-N первой группы входов и в регистры 17-1 -17-N второй группы входов. На входы первых четырех регистров 12-1-12-4 подаются соответственно координаты Х1, Y1 Х2, Y2.
Остановимся подробнее на том, что на выходах (втором, третьем, четвертом и пятом) блока 1 обработки исходных данных (фиг. 2) формируются координаты VX1, VY1 и VX2, VY2 очередного ребра контура.
Выбор первого ребра контура осуществляется следующим образом. Во втором узле 5-2 сравнения проверяется условие j = 1 (при включении устройства в счетчик 18 записывается "1"). Если данное условие выполняется, то сигнал с прямого выхода второго узла 5-2 сравнения подается на N-е управляющие входы первого 13-1 и второго 13-2 узлов задания координат (фиг. 3). При этом в данных узлах открываются N-е ключи 14-N и пропускают через себя соответственно в первом узле 13-1 задания координат код координаты Х N-й вершины контура, который записывается в шестой регистр 12-6 и рассматривается в дальнейшем как код VX1, во втором узле 13-2 задания координат код координаты Y N-й вершины контура, который записывается в седьмой регистр 12-7 и рассматривается в дальнейшем как код VY1. Одновременно с этим в третьем узле 5-3 сравнения проверяется условие j > N. Поскольку рассматриваемое ребро не последнее, то с инверсного выхода данного узла сравнения сигнал поступает на управляющие входы первого 19-1 и второго 19-2 дешифраторов. При этом в первом дешифраторе 19-1 не возбуждается ни один из выходов, так как на его информационный вход не поступает сигнал, а у второго дешифратора 19-2 возбуждается первый выход, так как на его информационный вход поступает число, соответствующее содержимому счетчика 18, равное в данный момент "1". Сигнал с первого выхода второго дешифратора 19-2 поступает на первые управляющие входы третьего 13-3 и четвертого 13-4 узлов задания координат (фиг. 3). При этом в данных узлах открываются первые ключи 14-1 и пропускают через себя соответственно в третьем (узле 13-3 задания координат код координаты Х первой вершины контура, который записывается в восьмой регистр 12-8 и рассматривается в дальнейшем как код VX2, в четвертом узле 13-4 задания координат код координаты Y первой вершины контура, который записывается в девятый регистр 12-9 и рассматривается в дальнейшем как код VY2.
Выбор очередного (включая последнее) ребра контура осуществляется следующим образом. Тактовый импульс, поступающий на первый вход блока 1 обработки исходных данных (фиг. 2), изменяет содержимое счетчика 18 на единицу. Поскольку j больше "1", то сигнал с инверсного выхода второго узла 5-2 сравнения поступает на управляющий вход третьего ключа 10-3, который пропускает через себя на первый вход первого вычитателя 18-1 число j, на второй вход которого подается код "1". Пока не выполнится условие j > N сигнал с инверсного выхода поступает на управляющие входы первого 19-1 и второго 19-2 дешифраторов, на информационные входы которых поступают коды соответственно j - 1 и j. При этом возбуждается (j - 1)-й выход первого дешифратора 19-1 и j-й выход второго дешифратора 19-2. Сигналы с названных выходов данных дешифраторов поступают соответственно на управляющие входы первого 13-1 и второго 13-2, а также третьего 13-3 и четвертого 13-4 узлов задания координат. Коды с выходов которых записываются соответственно в регистры 12-6-12-9 и рассматриваются в дальнейшем как коды VX1, VY1 и VX2, VY2.
Рассмотрим теперь последовательность контроля факта пересечения вектора с ребрами контура, заданного прямоугольными координатами вершин.
Коды Х1, Y1, X2 и Y2 с выходов первых четырех регистров 12-1-12-4 поступают на соответствующие входы второго блока 2-2 вычисления коэффициентов, в котором в соответствии с формулами (1)-(3) вычисляются коэффициенты А1, В1 и С1.
Коды VX1, VY1, VX2 и VY2 соответственно с второго, третьего, четвертого и пятого выходов блока 1 обработки исходных данных поступают на входы первого блока 2-1 вычисления коэффициентов, в котором в соответствии с формулами (4) - (6) вычисляются коэффициенты А2, В2 и С2.
Код А1 с первого выхода и код В1 с второго выхода второго блока 2-2 вычисления коэффициентов поступают соответственно на первый и четвертый входы первого узла 3-1 вычисления определителя, на второй и третий входы которого поступают соответственно код А2 с первого выхода и код В2 с второго выхода первого блока 2-1 вычисления коэффициентов. Сигнал с выхода первого узла 3-1 вычисления определителя поступает на первый вход первого узла 5-1 сравнения, в котором проверяется условие (7). Если данное условие выполняется, то сигнал с прямого выхода первого узла 5-1 сравнения подается на управляющий вход блока 4 вычисления координат (фиг. 6), на первые три входа которого подаются соответственно коды А1, В1 и С1 с одноименных выходов второго блока 2-2 вычисления коэффициентов. Коды А2, В2 и С2 с выходов первого блока 2-1 вычисления коэффициентов поступают соответственно на четвертый, пятый и шестой входы блока 4 вычисления координат, на седьмой вход которого подается код А1˙В2 - А2˙В1 с выходов первого узла 3-1 вычисления определителя. Если условие (7) не выполняется, то сигнал с инверсного выхода первого узла 5-1 сравнения поступает на второй вход второго элемента ИЛИ 11-2.
В блоке 4 вычисления координат (фиг. 6) определяются координаты Xt, Yt в соответствии с формулами (8) - (9). Одновременно в первом 6-1 и втором 6-2 блоках анализа, первом 7-1 и втором 7-2 узлах выделения максимального числа, первом 8-1 и втором 8-2 узлах выделения минимального числа определяется область нахождения точки пересечения вектора и рассматриваемого ребра контура в соответствии с формулами (10) - (13). При этом на входы первого блока 6-1 анализа подаются коды VX1, VY1, VX2 и VY2 с второго, третьего, четвертого и пятого выходов блока 1 обработки исходных данных. На выходах первого блока 6-1 анализа формируются соответственно минимальные и максимальные значения координат рассматриваемого ребра контура по оси Х и по оси Y. На входы второго блока 6-2 анализа подаются коды Х1, Y1, X2 и Y2 с выходов соответствующих четырех регистров 12-1-12-4. На выходе второго блока 6-2 анализа формируются соответственно минимальные и максимальные значения координат вектора по оси Х и по оси Y. На выходе первого узла 7-1 выделения максимального числа формируется код Xmin в соответствии с формулой (10), на выходе первого узла 8-1 выделения минимального числа -Хmaх в соответствии с формулой (11), на выходе второго узла 7-2 выделения максимального числа - Ymin в соответствии с формулой (12), на выходе второго узла 8-2 выделения минимального числа - Ymax в соответствии с формулой (13).
На первый вход блока 9 сравнения поступает код Xmin с выхода первого узла 7-1 выделения максимального числа, на второй вход - код Xt с первого выхода блока 4 вычисления координат, на третий вход - код Xmax с выхода первого узла 8-1 выделения минимального числа, на четвертый вход - код Ymin с выхода второго узла 7-2 выделения максимального числа, на пятый вход - код Yt с второго выхода блока 4 вычисления координат, на шестой вход - код Ymax с выхода второго узла 8-2 выделения минимального числа.
В блоке 9 сравнения (фиг. 10) осуществляется проверка условия (14). Если данное условие выполняется, т.е. вектор пересекается с рассматриваемым ребром, то сигнал с прямого выхода блока 9 сравнения поступает на управляющий вход второго ключа 10-2, который при этом открывается и пропускает через себя код "1", который через первый элемент ИЛИ 11-1 поступает на выход устройства. При этом подтверждается факт пересечения вектора с контуром и контроль прекращается. Если условие (14) не выполняется, то сигнал с инверсного выхода блока 9 сравнения поступает на первый вход второго элемента ИЛИ 11-2, на второй вход которого поступает сигнал с инверсного выхода первого узла 5-1 сравнения. Сигнал с выхода второго элемента ИЛИ 11-2 поступает на первый вход блока 1 обработки исходных данных (фиг. 2). При этом содержимое счетчика 18 увеличивается на единицу и производится выбор очередного ребра контура.
После того, как рассмотрены все ребра контура и ни с одним из них вектор не пересекается, выполняется условие j > N. При этом сигнал с прямого выхода третьего узла 5-3 сравнения через первый выход блока 1 обработки исходных данных поступает на управляющий вход первого ключа 10-1, который пропускает через себя код "0". Данный код через первый элемент ИЛИ 11-1 поступает на выход устройства, что свидетельствует о факте непересечения вектора с ребрами контура.
Таким образом, благодаря введению дополнительных блоков и связей расширены функциональные возможности устройства, что выражается в появлении возможности контролировать факт пересечения вектора с ребрами контура, заданного прямоугольными координатами вершин.
название | год | авторы | номер документа |
---|---|---|---|
УСТРОЙСТВО ДЛЯ ФОРМИРОВАНИЯ ОКРУЖНОСТЕЙ | 1991 |
|
RU2020578C1 |
Цифровое устройство для вычисления синусно-косинусных функций | 1980 |
|
SU926651A1 |
Устройство для поиска координат точки экстремума функции двух переменных | 1981 |
|
SU966703A1 |
Устройство для определения закона распределения | 1986 |
|
SU1388900A1 |
Устройство для нахождения оптимального вектора решения системы линейных неравенств | 1985 |
|
SU1315996A1 |
УСТРОЙСТВО ДЛЯ ОБРАБОТКИ СИГНАЛОВ | 2000 |
|
RU2195014C2 |
УСТРОЙСТВО ДЛЯ ОТСЛЕЖИВАНИЯ КОНТУРОВ ДВУМЕРНЫХ ОБЪЕКТОВ | 1996 |
|
RU2104580C1 |
Цифровой линейный интерполятор | 1991 |
|
SU1807450A1 |
УСТРОЙСТВО ДЛЯ ДИСКРЕТНОЙ ОБРАБОТКИ СИГНАЛОВ | 1998 |
|
RU2141737C1 |
Устройство для формирования отрезка наклонной линии на экране электронно-лучевой трубки | 1987 |
|
SU1425767A1 |
Изобретение относится к специализированным устройствам вычислительной техники и может быть использовано для контроля факта пересечения вектора, проходящего через две заданные точки на плоскости, с ребрами контура, заданного прямоугольными координатами вершин. Цель - расширение класса решаемых задач за счет возможности контроля факта пересечения вектора с ребрами контура, заданного прямоугольными координатами. Устройство для векторных вычислений содержит блок 1 обработки исходных данных, блоки 2-1, 2-2 вычисления коэффициентов, узел 3-1 вычисления определителя, блок 4 вычисления координат, узел 5-1 сравнения с нулем, блоки 6-1, 6-2 анализа, узлы 7-1, 7-2 выделения максимального числа, узлы 8-1, 8-2 выделения минимального числа, блок 9 сравнения, ключи 10-1 и 10-2, элементы ИЛИ 11-1 и 11-2, регистры 12-1 - 12-4. 6 з.п.ф-лы, 10 ил.
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
Устройство для вычисления координат вектора на плоскости | 1975 |
|
SU693378A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Авторы
Даты
1994-09-30—Публикация
1991-04-17—Подача