Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Фролов, С. А. Кибернетика и инженерная графика

.pdf
Скачиваний:
13
Добавлен:
20.10.2023
Размер:
7.75 Mб
Скачать

в предыдущей и последующей строках

считывания

чер­

тежа. Ординаты

этих

строк

отличаются

от

ординаты,

в которой

находится

точка К,

соответственно,

на

—2

и

+ 2 . Следует

отметить,

что, несмотря на увеличение

 

зоны

обследования

одной

точки в

5,5

раза

по

сравнению

со

слежением

при

непрерывном

считывании,

общее

время

слежения

за

всеми

точками

чертежа

сокращается.

Это

объясняется тем, что при переходе на считывание с уве­

личенным

шагом

квантования

количество

точек,

зоны

 

 

 

которых необходимо об­

 

 

 

следовать,

уменьшается

 

 

 

значительно

быстрее,

 

 

 

чем

увеличивается

зона

 

 

 

обследования. Сокраще­

 

 

 

ние машинного времени

 

 

 

составляет

 

примерно

 

 

 

37%.

 

 

 

 

 

 

Рассмотренное

выше

 

 

 

слежение

за

линиями

 

 

 

может быть

осуществ­

 

 

 

лено

только

в том

слу­

 

 

 

чае, если линии на чер­

 

 

 

теже

не

пересекаются.

 

 

 

При

пересечении линий

 

 

 

выделить из а-массива

 

 

 

координаты точек,

при­

 

 

 

надлежащих

прямым /

и / / (рис.

32),

невозможно.

Действительно,

выполняя

операции слежения за линией /, машина последовательно обследует окрестности точек /, 2, 3, 4, 5 я т. д. В резуль­ тате обследования окрестностей каждой из этих точек будут выявлены точки, принадлежащие только линии /, за которой осуществляется слежение. При обследовании окрестностей точки 7, кроме точки 9, обнаружатся точки 8 и 10, которые не принадлежат прямой /. Кроме того, появление этих точек приведет к изменению направления слежения: по окончании обследования окрестностей точки 9 машина приступит к обследованию окрестностей точки 8, а не 11, как это следовало бы сделать для слежения за линией /. После точки 8 будут обследоваться окрестности точек 10, 6, 11, 12 и т. д. Каждый раз при обследовании окрестностей очередной точки будут выявляться в а- массиве координаты точек, удовлетворяющие признаку близости расположения к исследуемой точке, которая

50

может принадлежать как линии /, так и // . Поэтому слежения за линией / не будет и все точки воспримутся как принадлежащие одному геометрическому образу. Произойдет только переадресация координат точек по другим номерам ячеек памяти ЭЦВМ. Подчеркнутые цифры на рис. 32 показывают новую последовательность записи чисел.

Рассмотрим

возможные варианты машинного реше­

ния задачи о

рассортировке координат растрэлементов

 

1

Рис. 33

по признаку их принадлежности к одной линии при ее пересечении с другой.

Даны пересекающиеся прямые / (2 р\) и // ( £ Рп). рис. 33. Как уже отмечалось, программа составлена так,

что рассортировка «-массива начинается с точки /

пря­

мой /. В результате обследования окрестностей

этой

точки обнаружится точка 2, координаты которой будут

переадресованы

в 2]

Pi-массив. Обследование окрест­

ностей

второй

точки

обнаружит в а-массиве точку 3.

В зоне

обследования

точки 3 находится также только

одна точка 6.

Слежение за свободным (не входящим в зону пересе­ чения) участком прямой / позволяет получить некото­ рые сведения об этой прямой, которые, в частности, пока­ зывают, что:

4*

51

1)каждый раз при обследовании окрестностей точки, взятой на прямой, выявляется только одна новая точка этой прямой;

2)новая точка расположена в следующей (нижней) строке считывания;

3)разность абсцисс точек, находящихся в двух сосед­ них строках, равна I .

Отмеченные свойства сохраняются для свободного участка любой прямой независимо от угла ее наклона. Отличаться будет только величина разности абсцисс, которая может принимать любое целое значение от О до 10. Если эта разность равна или больше 5, то при об­ следовании окрестности точки в нижней строке будут обнаруживаться две новые точки (речь идет о вертикаль­ ных и наклонных прямых).

Эта закономерность нарушается, как только обсле­ дуемая область захватывает зону пересечения прямых. Из чертежа на рис. 33 видно, что в зоне точки 6 окажется не одна новая точка, как было до этого, а три — 5, 7 и 8.

Появление «лишних» точек можно использовать в ка­ честве сигнала для команды перехода к новому участку программы. Как должна быть построена программа на этом этапе решения, можно понять из следующих рассуж­ дений: накопленный опыт слежения за свободным уча­ стком прямой / дает основание утверждать, что в нижней строке зоны обследования точки 6 должна находиться точка А, имеющая значение хА хв-1. Такой точки в «-массиве нет.

Предполагаем, что сигнал от точки А был погашен сигналом какой-то другой точки, которая может принадле­

жать

как линии,

за

которой осуществляется

слежение,

так

и новой

линии х .

Отсутствие

в а-массиве

точки А

не исключает

ее

существования на

чертеже.

Появление

«лишних» точек требует решить вопрос, принадлежат ли эти точки линии, за которой осуществляется слежение, или они относятся к другой линии, т. е. следует выяснить, с каким случаем мы имеем дело — с пересечением двух линий или с изменением кривизны линии, за которой ведется слежение. Полученных данных при обследовании

окрестностей точки 6

недостаточно и построить логиче-

1 Случай, что отрезок,

задающий

прямую, закончился, не доходя

до строки с ординатой у =

j / e

+ 2,

не учитывается, так как он не имеет

отношения к рассматриваемой

задаче.

52

скую схему решения задачи невозможно. Действительно, точка 7 имеет значение абсциссы на восемь единиц меньше, чем абсцисса предполагаемой точки А. Следовательно, сигнал от точки 7 должен заглушить сигнал, вызванный точкой А. Поэтому наличие точки 7 не дает возможности отрицать существование точки А, а следовательно, и предположения, что на рассматриваемом участке линия (6А) — прямая, а точка 7 принадлежит новой ли­ нии.

Можно также утверждать, что точки А на чертеже не было (как точки, лежащей на переднем крае линии). Это может быть в том случае, если линия /, за которой осуществляется слежение — кривая, резко меняющая направление в обследуемой зоне. Наличие точки 5 может еще больше убедит нас в возможности такого предполо­ жения (на рис. 33 пунктиром показан возможный вид линии). Чтобы сделать правильный вывод, необходимо выполнить дополнительные исследования. Это можно сделать в доступной для машины форме, выполнив сле­

дующие

операции:

 

 

 

1) выяснить, какая из точек 5, 7, 8, лежит в той же

строке,

в

которой

должна находиться

точка

А;

2)

определить по характеру расположения

предыду­

щих

точек

линии

1, значение абсциссы

точки

А;

3)

сравнить абсциссу точки А с абсциссами точек,

расположенных в той же строке.

 

 

Точку,

имеющую значение х меньше,

чем

А (в рас­

сматриваемом случае точка 7), принимаем за точку, окрестности которой необходимо обследовать. При обсле­ довании окрестностей точки 7 появится только одна но­ вая точка 9. Обследуя окрестности этой точки, получим две новые точки 10 и 11. Какую из этих двух точек сле­

дует принять

за

продолжение линии?

Чтобы

ответить

на

этот вопрос,

сравнивают

разности

абсцисс

точек 9,

10

и 9, 11 с разностью асбцисс точек 3, 6 (или любой дру­

гой

соседней

пары, взятой до

появления лишних точек).

Те точки, для которых эти разности равны, очевидно, принадлежат одной прямой — пересечение пройдено. Дальнейшее слежение за прямой / осуществляется так же, как это делалось на участке до пересечения.

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

53

зону

пересечения лишь в том случае, если она образо­

вана

двумя прямыми или прямой и кривой (во втором слу­

чае

пересечение удается пройти только при условии,

что

слежение ведется за прямой).

Чтобы получить способ, с помощью которого можно проходить пересечение независимо от вида пересекаю­ щихся линий, следует, оставив принцип сохранения по­ стоянства направления, сделать его более гибким, спо­ собным следовать за изменением направления кривой линии. Ниже излагается способ, который осуществляет слежение за произвольной кривой линией, и позволяет пройти зону пересечения этой линии с любой другой линией.

Сущность способа состоит в следующем. Слежение за линией, изображенной на рис. 34, начинаем с точки 1 обследованием окрестностей этой точки по способу, из­ ложенному выше (стр. 52). Слежение продолжается до тех пор, пока не будет отслежен весь участок между точ­ ками А и В. Координаты отслеженных точек записы­ ваются в ячейках определенного участка оперативной памяти машины -массиве). Затем из точек этого массива формируем р-массив, в котором точки размещаются по признаку возрастания их ординат. По координатам экстремальных точек р-массива находим направление

хорды

а,

стягивающей

кривую

на

заданном

участке.

Далее

на

полученной

прямой

а

определяем

точку

С,

удовлетворяющую

условию — значение

ее

ординаты

равно

у в +

Ау,

где Ау

определяется

как

разность

ор­

динат

экстремальных

точек,

отобранных

на

первом

участке слежения

(А В)

*.

 

 

 

 

 

 

Отрезок ВС принимаем за ось области, в которой производят поиск точек, принадлежащих следующему участку линии. Так как направление оси а не совпадает с направлением кривой на этом участке, слежение осу­ ществляют в зоне, ширина которой S гарантирует нахо­ ждение в ней точек, принадлежащих линии.

Машина выполняет слежение на этом участке так же, как на предыдущем, с той лишь разницей, что сравнение координат точек а-массива следует делать не с 44 точками зоны обследования (рис. 31), а с вспомогательным е-мас- сивом, образованным из точек, входящих в зону, окру-

* Если угол наклона прямой а

меньше 45°, то для определения

точки С следует брать величину хв

+

54

жающую прямую а. Границы зоны определяются: по направлению оси у, интервалом между точками С и В;

в направлении оси х величиной Х0(^Х0 =

, которая

откладывается по обе стороны от прямой а. Из точек, принадлежащих линии, выявленных при сравнении е-массива с а-массивом, формируются новые р- и р-массивы;

в последнем

находим

экстремальные точки (D и

Е).

Точки D и Е определяют прямую Ь, являющуюся осью

нового е-массива. Протяженность

этого

массива в

на­

правлении оси

у равна

разности

уЕ — yD,

ширина

со­

храняется постоянной, равной ширине предыдущего мас­ сива (2Х0). При сравнении координат точек е-массива

сисходными данными (а-массив) определяются коор­

динаты

точек,

принадлежащих

линии

на участке гг.

По экстремальным точкам G и Н

определяется напра­

вление

прямой

с, а по разности

их

ординат — поло­

жение

точки /

участка е2 . По

такой методике возможно

осуществить слежение за любой линией меняющейся кривизны и пройти зону пересечения таких линий.

55

ЭЦВМ, работая по программе слежения, наибольшую часть времени затрачивает на ту ее часть, в которой про­ исходит формирование е-массива и сравнение точек этого массива с исходной информацией. Чтобы сократить время, затрачиваемое на слежение, необходимо по возможности уменьшить ширину обследуемой области.

Рассматриваемый способ слежения предусматривает непрерывную коррекцию направления оси е-массива и изменение его протяженности. Длина последующего уча­ стка зависит от величины разности координат экстремаль­ ных точек, отобранных в предыдущем участке. Поэтому для сокращения длин осей е-массивов, длину первона­ чального участка (рис. 34) нужно брать по возможности наименьшей. Следует иметь в виду, что чрезмерное сокра­ щение длины первоначального участка может привести к прекращению слежения. Это происходит потому, что

протяженность

участка

зоны

обследования

вдоль

оси х

и оси у соответственно

равна:

 

 

 

 

А* =

хтах

— хт1п

при

ф <

45°;

 

 

 

=

#тах —

i/mm

П Р И

Ф 3*

4 5 ° -

 

 

экстремальных

 

(Утах>

 

Утщ)

а б С Ц И С С Ы

( о р Д И Н З Т ы )

точек,

отобранных

в

предыдущем

уча­

стке.

Поэтому, если длина первоначального участка взята слишком малой, то по мере увеличения порядкового но­ мера участка его длина будет постепенно уменьшаться. На одном из участков она может сокращаться настолько, что в |3-массив не будет отобрано ни одной новой точки, принадлежащей линии. Рис. 35 дает наглядное предста­ вление, как происходит уменьшение протяженности об­ следуемого участка. Из чертежа видно, что разность ор­ динат А4г/ четвертого участка составляет три растрэлемента. Поэтому на пятом участке будет выявлено только

две точки,

разность абсцисс

которых Аьх = 5 растрэле-

ментам

Следовательно, протяженность шестого

участка

будет равна

А5 х. При такой

длине обследуемого

участка

в нем не окажется ни одной точки, принадлежащей ли­ нии, и слежение прерывается. На рис. 36 приведен слу-

1 На пятом участке разность координат экстремальных точек берется равной Ах, так как угол наклона прямой, проходящей через эти точки, меньше 45°.

56

чай прекращения слежения из-за того, что на участке V/ обнаруживается только одна точка К, а это не дает воз­ можности составить рекомендации для определения на­ правления оси зоны обследования следующего участка.

На рис. 35 показано, что слежение за линией могло быть осуществлено, если длину первоначального уча­ стка принять равной 2 мм (обозначения справа). Тогда

Рис. 35 Рис. 36

при принятом уровне квантования в нем окажется пять точек. Поэтому протяженность второго участка будет равна 1,8 мм, а не 1,4 мм, как это было при протяженности первоначального участка, равной 1,6 мм. Увеличивая длину первоначального участка, мы предрешаем уве­ личение протяженности последующих участков, что поз­

воляет

осуществить слежение

за линией, изображенной

на рис.

35.

 

Требуемая протяженность

первоначального участка

зависит от очертания и длины линии. Такие условия создают определенные неудобства при программировании, так как всякий раз, когда мы будем переходить от одних исходных данных к другим (даже для однотипных задач), прежде чем поручить чтение чертежа машине, необхо­ димо провести анализ чертежа и в соответствии с его

57

результатом вводить соответствующие изменения в про­ грамму. При значительной длине линии увеличение про­ тяженности первого участка слежения не всегда обеспе­ чивает нужную длину участка с большим порядковым номером. Поэтому, чтобы избежать постепенного сокра­ щения протяженности обследуемых участков и не делать чрезмерного увеличения длины первого участка, доста­ точно, задав допустимо минимальную его длину при пе­ реходе ко второму (от второго к третьему — от преды­ дущего к последующему) участку, протяженность по­ следнего увеличивать на определенное число растрэлементов qx или Цу, которые компенсировали бы умень­ шение длины на предыдущем участке. В зависимости от угла наклона хорды первоначального участка следует

брать число

qx

равным удвоенной

величине

принятого

шага квантованния по времени (20

растрэлементов)

при

Ф° <С 45° и qy

— равным удвоенной

величине шага

кван­

тования по уровню (два растрэлемента)

при

ф° 5г 45°.

При соблюдении этих условий длина

первоначального

участка может

быть равной 1 мм,

если

участок кривой

(с которого начинается ее считывание) по направлению совпадает или близок к вертикали, и 6 мм для горизонталь­ ного или близкого к нему направления. Для остальных углов наклона она будет меняться в отмеченных преде­ лах. Пользоваться такими рекомендациями для машины неудобно. Поэтому вместо длины следует указывать число точек п, которые должны быть отобраны на первом уча­ стке слежения независимо от угла его наклона. Мини­ мально допустимое число п = 5, так как если п <С 5, то возможны случаи, когда направление, выбранное по экстремальным значениям точек, будет сильно отличаться от действительного направления участка кривой, что по­ требует при слежении значительного увеличения ширины 5 (некоторые из таких случаев приведены на рис. 37).

На рис. 38 дано наглядное представление о том, как происходит компенсация потери протяженности обследуе­ мого участка до размера, гарантирующего наличие в нем достаточного числа точек, необходимых для определения направления оси последующего участка.

Число точек е-массива зависит также и от ширины участка зоны обследования S, которая должна быть ми­ нимальной. При назначении величины S, следует иметь в виду, что слишком малое значение S не всегда позво­ ляет выявить точки, принадлежащие линии. Исследо-

58

вание этого вопроса показало, что

значение

S

зависит

от градиента кривизны смежных участков

линий. На

рис. 39 приведен график зависимости

S = f (Ki

— ^Q+i)-

• 1

 

и 3

2

 

4

П = 3 зп=4

а

И

 

б)

В)

 

Р и с .

37

Рис. 38

Значение кривизны определяется в двух соседних точках М н N (рис. 40) кривой, выявляемых при считы­ вании. Из чертежа видно, что недостаточно обоснован­ ная ширина S, равная 10 растрэлементам, не позволяет выделить в очередном участке (с осью KL) точки, при­ надлежащие линии, за которой ведется слежение, так

59