ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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 |
1Хб |
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