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

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

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

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

Добавлен: 21.10.2024

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

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

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

команд: 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