ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.10.2024
Просмотров: 138
Скачиваний: 0
в предыдущей и последующей строках |
считывания |
чер |
|||||||||||
тежа. Ординаты |
этих |
строк |
отличаются |
от |
ординаты, |
||||||||
в которой |
находится |
точка К, |
соответственно, |
на |
—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