Файл: Фролов, С. А. Кибернетика и инженерная графика.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2024

Просмотров: 147

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Проведение~окружностей (или дуг) на чертеже необ­

ходимо для

решения

таких

задач,

как:

 

 

1)

определение на заданной линии точек,

удаленных

от данной

точки

на расстояние

R;

 

 

 

2)

определение

на

плоскости

точек,

удаленных от

точки

А

на

расстояние Rx

и

от

точки

В

на расстоя­

ние

R2.

 

 

 

 

 

 

 

 

 

Учитывая, что информация о линиях чертежа посту­ пает в ЭЦВМ в виде конечного множества чисел — ко­ ординат некоторой совокупности точек, принадлежа­ щих линии, эти задачи целесообразно формулировать иначе:

1) на данной прямой найти точки, удаленные от дан­ ной точки на заданное расстояние;

2)определить уравнение прямой, проходящей через две точки, удаленные от двух данных точек на заданное расстояние;

3)найти на заданной линии точки, расстояние которых от данной точки ближе всего к некоторому заданному расстоянию;

4)пользуясь точками, выделенными в предыдущей задаче, найти точки пересечения линии и окружности заданного радиуса.

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

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

делить

как самостоятельные подпрограммы, исключив

из тех

подпрограмм, в которых они встречаются.

Приведенные в табл. 1 операции должна «уметь» выполнить ЭЦВМ по даннным, представленным в графи­ ческой форме.

71


Содержание операции

I г р у п п а

 

 

Определить

уравнение

прямой,

про­

ходящей через

две данные

точки . . . .

Определить

уравнение

прямой,

па­

раллельной данной и проходящей через заданную точку

Определить уравнение прямой, пер­ пендикулярной данной, проходящей че­ рез заданную точку

Определить уравнение горизонталь­ ной прямой, проходящей через заданную точку

I I г р у п п а

Найти точку пересечения двух за­

данных прямых На данной прямой найти точку с за­

данным значением абсциссы На данной прямой найти точку с за­

данным значением ординаты I I I г р у п п а

Найти расстояние между двумя за­

данными точками Разделить заданный отрезок в данном

отношении На данной прямой найти точки, уда­

ленные от данной точки на заданное рас­ стояние

Определить уравнение прямой, про­ ходящей через две точки, удаленные от

двух данных точек на заданное расстоя­ ние

I V г р у п п а

Найти на заданной кривой две точки, ближайшие к данной прямой

Найти на двух заданных кривых по

паре таких точек, чтобы две точки, выде­ ленные на одной кривой, являлись ближайщими к двум выделенным точкам дру­ гой кривой

Найти на заданной кривой точки, расстояние от которых до данной точки ближе всего к заданному расстоянию

Найти точки пересечения кривой с окружностью, проведенной из заданного центра данным радиусом

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

 

Таблица 1

Обозначение

Число

команд

/

10

I I

7

III

9

IV

5

V

17

VIa

11

v i 6

10

VII

8

VIII

5

i x a

40

б

11

X

23

XI

26

XIU

25

х п б

19

XIII

57

72


Запрограммировав перечисленные в табл. 1 операции, получим подпрограммы (операторы), с помощью которых можно составить компилирующую программу, пригодную для решения любой задачи, исходные данные которой представлены в графической форме. Программа операто­ ров с пояснениями приведены в приложении I I (стр. 200).

§ 7. ОБ АЛГОРИТМЕ МАШИННОГО РЕШЕНИЯ ЗАДАЧ

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

мощью обобщенных

определений, включенных в

поня­

тие элементарная

графическая операция

Для

обоз­

начения графических операций, на которые может быть расчленено решение задачи, используем прописные буквы латинского алфавита. Содержание таких операций и при­ нятые для них обозначения приведены в табл. 2.

Таблица 2

Содержание элементарной графической операции

Провести прямую через две данные точки

. .

Провести прямую через данную точку в заданном направлении

Провести вертикальную прямую через данную точку

Провести горизонтальную прямую через данную точку

Найти точку пересечения двух линий . . . .

Провести дугу заданного радиуса из заданной точки

Обозначение

А

В

С

D

Е

F

1 Элементарная графическая операция отличается

от оператора

тем, что получение результатов на машине, соответствующих

графи­

ческому выполнению одной элементарной операции, в

ряде

случаев

достигается выполнением нескольких операторов (см. §

6).

 

73


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

E1C2ES

Е4СьЕа

А^Е8С^Е10 .

(6)

(1) (3)

(2) (4)

(/С 2 ) (Ki)

 

Арабские цифры и буквы в скобках указывают точку, которая получается в результате выполнения операций,

Рис. 50

обозначенных латинскими буквами. Комбинации из не­ скольких повторяющихся операций объединены в стан­ дартные массивы Q.

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

дачи

представится

следующей

схемой

счета:

а) прямая проецирующая, плоскость задана парал­

лельными

прямыми

(рис.

50, а):

 

 

 

О1Е2С3Е^ьЕвС7Е8АаЕ10',

(7)

 

 

 

(1) (2)

(3)

(4) (Ki)

 

б) прямая проецирующая,

плоскость

задана следами

(рис.

50,

б):

 

 

 

 

 

 

 

D^CsEiB^Ee,

 

(8)

 

 

 

(1)

(2)

(КО

 

74


в) плоскость проецирующая

(рис. 50, в):

E1C2ES.

 

(9)

(К,)

(Кг)

 

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

можно поступить следующим

образом:

 

во-первых, подготовить постоянный набор

программы,

с помощью которых можно решить задачу при

различных

вариантах

исходных данных

и записать эти

программы

в памяти

машины;

 

 

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

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

мяти

программ осуществлять

решение.

Во

втором случае — машина

начинает решать задачу

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

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

будут отнесены к разным случаям, а внешне

похожие

(рис. 52) требуют для своего решения различных

машин-

75