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

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

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

 

Ввод

 

программы

Пооба:на количество

оОразов

 

•ж.

Формирование

Обращение

к о п е р а т о р у ! !

нулей на месте

(определение

коэффициентов

уравнения

А, В, С

прямой)

 

Перенос

Подпрограмма

коэффициента

прямой

перехода

в фиксированные

к варианту Л

адреса А к Вк С к

Х=Х; y=ioea-y

ТГ<Г

 

N=6

 

I вариант

 

_ Точки 1 нет

 

4-

 

 

 

 

 

Д вариант

 

 

 

 

 

Обращение

 

 

 

 

 

к оператору И б

 

 

 

 

(определение

 

 

 

 

 

точки 1)

 

1взриант

 

 

 

 

Обращение

 

Точки Знет

 

 

>

*J

ПС

к

оператору Н а

 

<

 

 

(определение

 

| Д вариант

 

точки 2)

 

 

 

 

 

 

 

 

к

Обращение

 

Обращение

операторуД

 

(определение

к

операторуИб

 

уравнения

 

(определение

 

 

 

прямой

 

 

точки 5)

 

 

 

 

проходящей

 

 

через

точку2

 

Обращение

 

и парал­

 

 

лельной

2 )

к

операторуШа

 

 

 

 

 

(определение точки 6)

Обращение

к оператору Y (определение точки 1)

Обращение

к оператору y j a (определение точки 2)

Обращение к оператору У (определение

точки 3)

Обращение к оператору Ш а (определение

точки 4)

Обращение

к оператору I (определение уравнения прямой 2-4)

Обращение к оператору У (определение

точки 5)

Обрацение

к оператору И а

(определение точки 6)

Т

Стоп,

Рис. 55

•N = 6

Проба: на точечный оораз №4 (при 5-м обходе)

Обращенне ; к оператору» (определение

точки О)

Обращение к оператору!? (определение

уравнения

горизонтальной

прямой)

 

 

 

 

 

 

 

 

 

к

 

015 ращение

И е

 

 

 

 

оператору

 

 

 

 

(определение

 

 

 

 

 

точки 1)

 

Точки Знет

к

 

Обращение^"

 

 

 

 

оператору

И »

 

 

 

(определение

 

Обращение

 

 

 

точки

2)

 

 

 

 

 

 

 

к оператору

Д

к

 

Обращение

 

(определение

 

оператору Ш к

уравнения

 

 

(определение

прямой

 

 

 

точки 3)

 

проходящей

 

 

Т

 

 

[через

точку2

 

 

 

 

и

парал­

 

 

 

ООращенне^.

5 )

к, оператору

Ш 2

лельной

 

(определение

 

 

 

 

 

точки 4)

 

 

 

 

 

 

Обращение

 

 

 

 

к

оператору

I

 

 

 

 

(определение

 

 

 

 

 

уравнения

 

 

 

 

 

 

прямой

2-4)

Точки 4 нет

к

Обращение

Y

оператору

 

 

 

 

(определение

 

 

 

 

 

точки

6)

 

U-

Обращение

к оператору Y J a (определение точки 5)

80

исходных данных, кроме того, для 1, 5, 6 и 8 вариантов плоскость задавалась как параллельными, так и пересе­ кающимися прямыми (в том числе и следами). Во всех случаях ЭЦВМ самостоятельно справлялась с задачей выбора правильного пути решения.

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

можно рассматривать как

специальную

подпрограмму

(СП). В § 9 будет показано

использование

СП для

реше­

ния

задач по нахождению

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

линей­

чатой

поверхности плоскостью.

 

 

§ 8. ОПРЕДЕЛЕНИЕ РАЦИОНАЛЬНОГО

АЛГОРИТМА РЕШЕНИЯ ЗАДАЧ

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

Вопросам оценки

простоты и точности геометриче­

ских

построений уделялось большое

внимание совет­

скими

и зарубежными

специалистами.

Несмотря на мно­

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

6 С. А. Фролов

81

ния (приложить линейку к точке, провести прямую, поместить острие циркуля в данную точку, провести ок­ ружность и т. д.).

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

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

Возникает вопрос: каким способом можно сравнить алгоритм I с алгоритмом I I и что следует брать в качестве критерия, позволяющего сделать вывод о том, что один из рассматриваемых алгоритмов дает более простое и точное решение? Описанный выше способ выражения «графического алгоритма» в виде «схемы счета», соста­ вленной из элементарных графических операций, поз­ воляет получить не только качественную, но и количе­ ственную оценку какого-либо алгоритма. Для этого до­ статочно подсчитать число машинных операций (команд), которые необходимо выполнить для реализации алго­ ритма на ЭЦВМ. Это можно сделать, заменив в схеме счета элементарные операции (§ 7, табл. 2) стандартными операторами (§ 6, табл. 1), и выразить их числом содер­ жащихся в них команд. Кроме того, исследуя струк­ туру построения схем счета, можно сделать вывод о целе­ сообразности использования какого-либо алгоритма для машинного решения.

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

определение^проекций линий пересечения

kx и

/ 2 плос­

кости а (а X Ь) с плоскостями проекции Пх

и Я 2

(рис. 56).

Один из способов решения этой задачи сводится к опре­ делению точек M i , Ml; М|; М\, N\, Nl, Nl, N\ В после-

82

довательности, указанной верхними индексами, и прове­ дению прямых через точки М.\, N\ И М\, NI. Решение этой же задачи можно получить другим путем, опреде­ ляют точки пересечения в следующей последовательности:

М\, М\, Ml, М\, Nu N2, затем проводим прямую М\,

N\

И находим

точку

L \ .

После

этого проводим

прямую

L \ M \ . Алгоритм

ручного

решения в символике элемен­

тарных

графических

опе­

 

 

 

 

раций можно

записать:

 

 

 

 

для

первого

случая

 

 

 

 

 

Е1С2Е3;

EfibE6;

 

Е~С8Е9;

 

 

 

 

 

 

 

 

A1SAU;

 

(18)

 

 

 

 

для

второго

случая

 

 

 

 

 

EiC^E^,

EfibEft,

Е7СаЕ9\

 

 

 

 

 

 

4 o £ i H i 2 -

 

(19)

 

 

 

 

Заменив

 

графические

 

 

 

 

операции

стандартными

 

 

 

 

операторами,

выражения

 

 

 

 

(18)

и

(19)

запишем:

 

 

 

 

 

 

VJIWs;

 

VJII5Ve;

V,IIIaV9;

V 1 0 / / / U V 1 2 ;

I13IU;

(20)

 

 

VJII2V3]

VtIIIbVe;

V7III8Va;

/ 1 0 V u / l

a .

(21)

Для машинного решения возможно использовать и другие алгоритмы. Один из них может быть получен заменой двух операторов III, V одним VIa. В этом случае схема счета (20) примет вид

ViVIa,;

V3VIat; V5VIa,;

V7Vh8;

/ 9 /ю .

 

(22)

Если принять во внимание, что любая точка

оси х 1 2

имеет значение

у = п

частном случае

п = 500), то

можно отказаться от использования оператора V,

заменив

его оператором

VI6.

Алгоритм

решения

задачи

в

этом

случае будет следующим:

 

 

 

 

 

 

1) определить значение х точки, принадлежащей

пря­

мой и имеющей у = п (точка М.\);

 

 

 

 

2) определить значение у точки, принадлежащей пря­

мой и имеющей

значение х

х

\ (точка

М%), и т. д.

 

6*

83

Схема счета такого алгоритма запишется:

VI6lVIa,\

Vl63VISi;

VI6lVIa.;

VI6lVIa

- / 9 / 1 0 .

(23)

Аналогично из второго алгоритма ручного решения можно получить два новых машинных алгоритма, схемы счета которых будут:

ViVIai; V3Vh- VBVIt.; W 9 ;

(24)

VI6yU,VI6,Vhyi6yia,I7VI6.h.

(25)

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

обходимо

четырежды

выполнить

массив

(V

III

V);

в схеме (22) — столько же раз комбинацию (V

VIa). Если

учесть, что, с точки зрения

трудоемкости, выполнение

операторов

Vla

и VI6

равнозначно,

то

решение

этой

же

задачи по алгоритму, выраженному схемой (23),

сводится

к восьмикратному выполнению

оператора VI.

 

 

 

Условно

выражения

(20),

(22),

(23)

можно

записать:

 

 

 

4

(V III

V) I I;

 

 

 

(26)

 

 

 

4 (V

VI)

I

I;

 

 

 

 

(27)

 

 

 

 

8 (VI) I I .

 

 

 

 

(28)

Выражения

(21),

(24),

(25)

могут

быть

приведены

к следующему

виду:

 

 

 

 

 

 

 

 

 

 

 

 

3 (V

Ш

V) I

V I ;

 

 

 

(29)

 

 

3

(V

VI)

I

V

I ;

 

 

 

 

(30)

 

 

 

6 (VI)

I VII.

 

 

 

 

 

(31)

Сопоставляя между собой выражения (26)—(31), можно сделать заключение, что предпочтение следует отдать алгоритмам, записанным в виде схем (28) и (31), так как их реализация на ЭЦВМ сводится в основном к выполне­ нию одного и того же цикла (оператор VI). Такой итеррационный способ решения является наиболее целесообраз­ ным для вычислительной машины.

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

84

команд: V— 17, / / /

— 9, VI— 11

и / — 10, получим

следующие числовые

характеристики

алгоритмов:

(26)-~ 192; (27) — 132; (28) — 108;

(29)— 166; (30) — 121; (31) — 99.

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

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

§ 9. ОПРЕДЕЛЕНИЕ ЛИНИИ СЕЧЕНИЯ ЛИНЕЙЧАТОЙ ПОВЕРХНОСТИ ПЛОСКОСТЬЮ

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

85

мер, задач по определению линии сечения линейчатой поверхности плоскостью.

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

может

быть записан в следующей символической

форме:

 

So (a,-); S i

(Л);

S*(S,);

Ss

 

(32)

где

(ai) — различные пробы, позволяющие

выбрать

 

 

 

правильный путь решения в зависимости

 

 

 

от вида и характера расположения исход­

 

2i

(Р^

ных данных;

 

 

 

 

 

— логическая

последовательность

элемен­

 

 

 

тарных операций для нахождения точки,

 

 

 

через

которую

проходит

интересующая

 

 

 

прямолинейная

образующая линейчатой

 

S 2

(SI)

поверхности;

 

 

 

 

 

— последовательность

однотипных

опера­

 

 

 

ций А

и В;

 

 

 

 

 

А

и В — (операторы

I или II), с помощью которых

 

 

 

определяются уравнения

проекций обра­

 

 

 

зующей;

 

 

 

 

 

(PPi) — вспомогательные операции.

Если выполнение R для всех задач рассматриваемого типа одинаково (оно может изменяться только в пределах вариантов задания и расположения секущей плоскости), то характер и последовательность выполнения операций, вхо­

дящих в

2i>

S 2 и

Д Л Я разных задач, будут

различны.

Проследим

на

конкретных

примерах, как

изменяются

S 2

И И Зв зависимости

от вида линейчатой поверх­

ности.

 

 

 

 

 

Пример 1. Определить сечение цилиндрической по­ верхности плоскостью (рис. 57). Произвольная цилиндри­ ческая поверхность задана направляющей (2 Р2> 2 Р7) и

одной из образующих (2 Pi, 2 Ре), а плоскость а—• пере­ секающимися прямыми (2РзИРб X 2 Р4, 2 Ре)-

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

1)

из массива ячеек памяти б7 , где хранятся

коорди­

наты

точек криволинейного образа (множество 2

Р7), в ы "

брать

точку

1Ъ

имеющую минимальное

значение

х;

2)

найти

на

кривой 2 Ра точку h с х

= Х(.) и

 

86

3)

определить

уравнение

прямой

2j Ps>

проходящей

через

точку 1Х

параллельно

£ Psi

 

 

 

4)

определить

уравнение

прямой

Xi Рь

проходящей

через

точку / 2

параллельно

SPi!

 

 

 

5) найти Ьк точку встречи прямой

( S P s S P i )

с пло­

скостью а.

 

 

 

 

Кг,

 

Чтобы найти

 

следующую

(вторую)

точку

принад­

лежащую искомой линии пересечения, нужны уравнения

проекции новой

прямолинейной

образующей

поверхности.

Для

этого повторяем

операции,

пре­

дусмотренные п. 1—4,

 

изменяя

содержание

первого

 

пункта;

для определения положения вто­

рой А

и

всех

последующих

(/?,

1\,

. ,

.,

/")

точек

находим

на кривой 2 fb точку l\, уда­

ленную

отточки

/ х

на

задан­

ное

расстояние

А/.

Получив

проекции

новой

образующей,

машина

приступает

к

выпол­

нению п. 5,

т. е. решает задачу

по

определению

точки

встречи

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

ных п. 1—5,

выполняется до тех пор, пока на

криволиней­

ном образце

2

р7 нельзя получить

точку

отстоящую

от предыдущей на расстоянии А/.

 

п. 1—4, вы­

Операции,

предусмотренные

выполнением

ражаем

через

элементарные операторы П*, /,

//, ///, V,

X, XI/б;

тогда

 

 

 

 

 

для

первой точки

 

 

 

 

 

 

 

 

S i (Pt) = Л,

III,

X,

I , V,

(33)

для

последующих

точек

 

 

 

 

 

 

 

S i ( P , )

= X / / 6

, Ш,Х,

I , V;

(34)

 

 

 

S2 (S) =

/ / , / / ;

 

(35)

 

 

 

 

2 з (ЯЛ) =

Я.

 

(36)

* Я — операция обращения к первой записанной в 87 -массиве точке.

87

Схема счета программы для решения поставленной за­ дачи может быть записана:

Г!, Шг^ЧМ^ЩШМгЧМь^

(37)

Пример 2. Определить сечение конической поверх­

ности плоскостью (рис. 58). Коническая поверхность за­

дана

направляющей

(2;Р2 , Z

Р?)

и

центром

(2

Pi S Ре),

а плоскость а — пересекающимися прямыми (2 Рз 2

Ре

х

 

 

 

 

 

х 2Р* 2Р5 )-

 

этой

за­

 

 

 

 

 

 

Для

решения

 

 

 

 

 

дачи, как

и в предыдущем

 

 

 

 

 

примере,

используем

под­

 

 

 

 

 

программу

R

и стандарт­

 

 

 

 

 

ные

массивы

2i

(^/)

и

 

 

 

 

 

£ 2

(<$,•)•

Отличие от реше­

 

 

 

 

 

ния

задачи

(пример

1) со­

 

 

 

 

 

стоит в том, чтотеперьп. 3

 

 

 

 

 

и 4 будут

сформулированы

 

 

 

 

 

так:

 

 

 

 

 

 

 

 

 

 

 

 

 

определить

уравнение

 

 

 

 

 

прямой,

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

 

 

 

 

 

точки /i

 

и

2 Р 8

(п. 3);

 

 

 

 

 

 

определить

уравнение

прямой, проходящей через точки 12

 

и 2

Рх

(п. 4).

 

 

 

В этом

случае выражение

(35)

 

может

быть записано

2 2 (S)

=

/, /

и схема счета примет вид

 

 

 

 

 

 

 

 

Л, Ш г Х Л ^ б Ь К Л Д Л

W A R *

 

 

(38)

Цикл

ХПбд ч~ Ri6

выполняется

 

до

тех

пор,

пока

на

кривой 2

Р? (в

<57-массиве) не

будет обнаружено

очеред­

ной точки, удаленной от предыдущей на расстояние А/. Пример 3. Определить сечение гиперболоида пло­

скостью (рис. 59). Поверхность гиперболоида задана

тремя

направляющими

(2 Pi. 2 Pioi 2 Р2. 2 Ps>; 2

Рз.

2 Ре).

а плоскость а — пересекающимися прямыми (2

Р4.

2 Рт х 2 Ра, 2 Р.)-

Для определения характера и последовательности вы­ полнения операций, входящих в 2 2 2 и 2 з> восполь-

88

зуемся выводами, сделанными И. И. Котовым [5]. Если проецировать точку М одной из трех направляющих (а) гиперболоида (принадлежащих к одному семейству обра­ зующих его прямых) на плоскость изображения а в на­ правлении двух других направляющих и с) и получен­ ные точки соединить с соответствующими проекциями (следами) двух других прямых, то полученные прямые будутпринадлежатьдвум про­ ективным пучкам. Эти пря­ мые являются образующими второго семейства гиперболо­ ида. Из проективности пуч­ ков следует, что пересечение соответственных лучей этих пучков определяет кривую второго порядка — сечение гиперболоида плоскостью а.

В этом случае выражения (33), (34), (35) и (36) примут вид:

для первой точки

(Р.) = Я,

/ / / , X,

/, V; (39)

 

 

 

Рис/БЭ

 

для всех последующих

точек

 

 

 

 

 

 

 

S i

(/>,) =

 

/ * . ,

III,V;

 

 

 

(40)

для

первого цикла

 

 

 

 

 

 

 

 

 

 

%3(RP.)

=

RRRR

[I X

 

III

V;

(41)

для

всех

последующих

 

циклов

 

 

 

 

 

 

^(RP()

 

=

RRIIVIIIV.

 

 

 

(42)

Схема счета программы

запишется

в

виде

 

 

П , Ш 2 Х Л <

7 5

П

в

М

а М

Д

,

R12R13I14I15Y16III17Y18

 

ГХ,9

Ш г о У г , Д г г Д г з

П я

П й R?6

R? 7 1 г 8

I a

Уд, Ш3 , У 3 2

(43)

Пример 4. Определить сечение коноида плоскостью (рис. 60). Для задания полного изображения коноида на комплексном чертеже достаточно показать проекции его направляющих: кривой (2 Рз> S Ре) и прямых (У] Р1 5

2 Рю и Ц Рг> 2

Ра)-

Плоскость

а

задана пересекающи­

мися прямыми

(£ р4,

2 Р7 X 5

Ре.

S Ре)-

89