Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Решение метрических задач по начертательной геометрии на ЭВМ. Методические указания к практическим занятиям по начертательной геометрии.pdf
Скачиваний:
0
Добавлен:
09.08.2026
Размер:
425 Кб
Скачать

2 Руководство пользователя

Для запуска данной программы необходимо скопировать программный файл "KOMG4.EXE" на жесткий диск компьютера, подвести клавишами курсора подсвеченный курсор к программному файлу и нажать клавишу "Enter". После этого на экране монитора появится основное меню учебной программы. Перемещение по пунктам меню осуществляется подсвеченным курсором, выбор пункта – нажатием клавиши "Enter". После выбора одного из вышеназванных пунктов появляется основной текст учебного пособия, перемещение по страницам которого осуществляется клавишами "Page Up" и "Page Down". Выйти из программы можно из основного меню, путем выбора пункта меню "Выход".

Список использованных источников

1 Гордон В.О., Семенцов-Огиевский М.А. Курс начертательной геометрии. - М.: Издательство «Наука», 1969. -368с.

4

Приложение А

(обязательное)

Листинг программы

Решение основных задач способом замены плоскостей проекций

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

преобразований f , f , при этом исходная и новая система координат будет иметь общее начало.

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

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

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

5

Решение основных задач способом замены плоскостей проекций

1. Преобразовать прямую (АВ) общего положения в прямую уровня или, другими словами, определить натуральную длину отрезка [АВ],

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

6

Решение основных задач способом замены плоскостей проекций

1. Преобразовать прямую <АВ> общего положения в прямую уровня или, другими словами, определить длину отрезка [АВ],

{нажмите клавишу <enter>}

Для решения этой задачи выбираем новую плоскость проекций, параллельно данной прямой. На рисунке новая фронтальная плоскость проекций П2

выбрана параллельно АВ, т.е. новая ось х12 выбрана параллельно горизонтальной проекции А1В1 прямой АВ,

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

7

Решение основных задач способом замены плоскостей проекций

1. Преобразовать прямую (АВ) общего положения в прямую уровня или, другими словами, определить натуральную длину отрезка [АВ],

{нажмите клавишу <enter>}

Для решения этой задачи выбираем новую плоскость проекций параллельно данной прямой. На рисунке новая фронтальная плоскость проекций П2

выбрана параллельно АВ, т.е. новая ось х12 выбрана параллельно горизонтальной проекции А1В1 прямой АВ,

{нажмите клавишу <enter>}

Проекция А2 В2 на новой плоскости проекций П2 определяется проекциями А2 , В2 ее точек А, В.

Правило: при замене фронтальной плоскости проекций на новую остается неизменной аппликата (высота) данной точки.

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

8

Решение основных задач способом замены плоскостей проекций

1. Преобразовать прямую (АВ) общего положения в прямую уровня или, другими словами, определить натуральную длину отрезка [АВ],

{нажмите клавишу <enter>}

Для решения этой задачи выбираем новую плоскость проекций параллельно данной прямой. На рисунке новая фронтальная плоскость проекций П2

выбрана параллельно АВ, т.е. новая ось х12 выбрана параллельно горизонтальной проекции А1В1 прямой АВ,

{нажмите клавишу <enter>}

Проекция А2 В2 на новой плоскости проекций П2 определяется проекциями А2 , В2 ее точек А, В.

Правило: при замене фронтальной плоскости проекций на новую остается неизменной аппликата (высота) данной точки.

{нажмите клавишу <enter>}

Очевидно, эта задача так же легко решается заменой горизонтальной плоскости проекций П1 на новую плоскость П1 . Для этого новую ось х21 = П2 П1 нужно выбрать параллельно фронтальной проекции А2В2 данной прямой. Построение новых проекций А1, В1 точек А, В выполняется по правилу: при замене горизонтальной плоскости проекций на новую остается неизменной ордината (глубина) данной точки.

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

9

Решение основных задач способом замены плоскостей проекций

Приведем аналитическое решение этой задачи. Пусть прямая АВ задана системой уравнений:

(1)

 

у = к1 х+b1 ,

z = к2 х+b2

 

Заменим фронтальную плоскость проекций

П2 на

новую плоскость

 

,

параллельную прямой

АВ.

П2

Плоскость

 

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

 

П2

 

Отсюда

 

 

 

у = к1 х1

 

 

 

 

к1

 

 

(2)

 

sin а =

;

 

 

 

 

 

1+ к12

 

 

(3)

 

cos а =

к1

,

 

 

 

 

 

 

1+ к2

 

 

 

 

 

 

 

1

 

 

а – угол поворота осей координат.

Он будет положителен, если вращение осуществляется против движения часовой стрелки.

При замене горизонтальной плоскости проекции П1 на новую плоскость П1 :

х = х* cos a + z * sin a , y = y ,

z = −х* sin a + z * cos a ;

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

10

Решение основных задач способом замены плоскостей проекций

При замене фронтальной плоскости проекций П2 на новую плоскость П2 :

х = х* cos a + z * sin a , y = −х*sin a + y * cos a ;

z = z ,

Подставив (2) и (3) в (4) и выразив х, у, z получаем формулы обратного преобразования:

 

х =

1

 

х

к1 y

;

 

 

+ к2

1

+ к2

 

 

 

 

1

 

 

 

1

 

(5)

y =

к1 х

1

y

;

 

 

1

+ к

2

+ к

2

 

 

 

 

1

 

 

1

z = z .

Подставив значения х, y, z из (5) в (1), проекций П на новую плоскость проекций П :

 

= b1 ;

 

= k2 (хk1 y) +b2 .

y

y

 

1+k12

 

1+ k12

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

11

Решение основных задач способом замены плоскостей проекций

2. Преобразовать прямую (АВ) общего положения в проецирующую прямую.

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

12

Решение основных задач способом замены плоскостей проекций

2. Преобразовать прямую (АВ) общего положения в проецирующую прямую.

{нажмите клавишу <enter>}

Задачу решаем композицией двух преобразований. Преобразованием f (П2 П2 ) прямую АВ преобразуем в прямую уровня в системе П1 , П2 (см. задачу 1)

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

13

Решение основных задач способом замены плоскостей проекций

2. Преобразовать прямую (АВ) общего положения в проецирующую прямую.

{нажмите клавишу <enter>}

Задачу решаем композицией двух преобразований. Преобразованием f (П2 П2 ) прямую АВ преобразуем в прямую уровня в системе П1 , П2 (см. задачу 1)

{нажмите клавишу <enter>}

Вторым преобразованием f (П1 П1 ) , где новая плоскость проекций П1 выбирается перпендикулярно АВ (А2 В2 х21 ) , в системе П1 , П2 получаем проекционную прямую.

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

14

Решение основных задач способом замены плоскостей проекций

3. Преобразовать плоскость общего положения в проецирующую.

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

15

Решение основных задач способом замены плоскостей проекций

3. Преобразовать плоскость общего положения в проецирующую.

{нажмите клавишу <enter>}

По условию задачи новая плоскость проекций должна быть перпендикулярной данной плоскости Ф(А1В1С1, А2В2С2). Это условие будет выполнено, если она будет перпендикулярна горизонтали плоскости Ф при замене плоскости П2 на П2 или фронтали плоскости

Ф при замене П1 на П1 .

На рисунке показано решение этой задачи заменой горизонтальной плоскости проекций П1 на новую

плоскость проекций П1 . Здесь Ф П1 , так как

П1 f Ф(х21 f2 ) .

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

16

Решение основных задач способом замены плоскостей проекций

3. Преобразовать плоскость общего положения в проецирующую.

{нажмите клавишу <enter>}

По условию задачи новая плоскость проекций должна быть перпендикулярной данной плоскости Ф(А1В1С1, А2В2С2). Это условие будет выполнено, если она будет перпендикулярна горизонтали плоскости Ф при замене плоскости П2 на П2 или фронтали плоскости

Ф при замене П1 на П1 .

На рисунке показано решение этой задачи заменой горизонтальной плоскости проекций П1 на новую

плоскость проекций

П

1 . Здесь Ф

П

1 ,

 

так как

 

 

1 f Ф(

 

21 f2 ) .

 

 

П

х

 

 

 

{нажмите клавишу <enter>}

 

 

 

Построение новых проекций

 

1 ,

 

1 ,

 

1

точек А1,

 

 

А

В

С

В1, С1 плоскости Ф ясно на рисунке.

 

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

17

Решение основных задач способом замены плоскостей проекций

4. Преобразовать плоскость общего положения Ф(А, В, С) в плоскость уровня, т.е., определить натуральные размеры треугольника АВС.

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

18

Решение основных задач способом замены плоскостей проекций

4. Преобразовать плоскость общего положения Ф(А, В, С) в плоскость уровня, т.е., определить натуральные размеры треугольника АВС.

{нажмите клавишу <enter>}

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

Поэтому первой заменой f (П1 П1 ) плоскость Ф преобразуем в проецирующую в системе П2 , П1 (см.

задачу 3)

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

19

Решение основных задач способом замены плоскостей проекций

4. Преобразовать плоскость общего положения Ф(А, В, С) в плоскость уровня, т.е., определить натуральные размеры треугольника АВС.

{нажмите клавишу <enter>}

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

Поэтому первой заменой f (П1 П1 ) плоскость Ф преобразуем в проецирующую в системе П2 , П1 (см.

задачу 3)

{нажмите клавишу <enter>}

Второй заменой f (П2 П2 ), где П2 ||Ф, проводим ее в положение плоскости уровня в системе П1 , П2 .

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

20

Решение основных задач способом плоскопараллельного движения

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

Теорема о параллельном перемещении относительно П1: при плоскопараллельном движении фигуры относительно горизонтальной плоскости проекции фронтальные проекции ее точек перемещаются по прямым, перпендикулярным линиям связи, а горизонтальная проекция фигуры остается конгруэнтной самой себе.

Теорема о параллельном перемещении относительно П2: при плоскопараллельном движении фигуры относительно фронтальной плоскости проекции горизонтальные проекции ее точек перемещаются по прямым, перпендикулярным линиям связи, а фронтальная проекция фигуры остается конгруэнтной самой себе.

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

21

Решение основных задач способом плоскопараллельного движения

1. Преобразовать прямую общего положения в прямую уровня – фронталь.

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

22

Решение основных задач способом плоскопараллельного движения

1. Преобразовать прямую общего положения в прямую уровня – фронталь.

{нажмите клавишу <enter>}

Выполним плоскопараллельное движение прямой АВ относительно горизонтальной плоскости проекции. Так как прямая АВ должна быть фронталью, то ее горизонтальную проекцию А1 В1 расположим перпендикулярно линиям связи. При этом согласно теореме горизонтальные проекции А1В1 , А1 В1 отрезка [АВ] и его образа [АВ] должны быть конгруэнтны.

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

23

Решение основных задач способом плоскопараллельного движения

1. Преобразовать прямую общего положения в прямую уровня – фронталь.

{нажмите клавишу <enter>}

Выполним плоскопараллельное движение прямой АВ относительно горизонтальной плоскости проекции. Так как прямая АВ должна быть фронталью, то ее горизонтальную проекцию А1 В1 расположим перпендикулярно линиям связи. При этом согласно теореме горизонтальные проекции А1В1 , А1 В1 отрезка

[АВ] и его образа [АВ] должны быть конгруэнтны. {нажмите клавишу <enter>}

Фронтальная проекция А, В точек А, В перемещаются соответственно по прямым Ф2, W2 – вырожденным проекциям горизонтальных плоскостей уровня Ф, W в которых перемещаются точки А, В.

В результате выполненного плоскопараллельного движения определим натуральную величину отрезка АВ(|АВ|= А2 В2 ) и угол q его наклона к горизонтальной плоскости проекции.

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

24

Решение основных задач способом плоскопараллельного движения

2. Преобразовать прямую (АВ) общего положения в горизонтальную проецирующую прямую.

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

25

Решение основных задач способом плоскопараллельного движения

2. Преобразовать прямую (АВ) общего положения в горизонтальную проецирующую прямую.

{нажмите клавишу <enter>}

Задача решается композицией двух преобразований. Сначала плоскопараллельным движением относительно П1 прямую АВ преобразуем во фронтальную прямую уровня АВ (см. задачу 1)

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

26

Решение основных задач способом плоскопараллельного движения

2. Преобразовать прямую (АВ) общего положения в горизонтальную проецирующую прямую.

{нажмите клавишу <enter>}

Задача решается композицией двух преобразований. Сначала плоскопараллельным движением относительно П1 прямую АВ преобразуем во фронтальную прямую уровня АВ (см. задачу 1)

{нажмите клавишу <enter>}

Затем плоскопараллельным движением относительно П2 прямую АВ преобразуем в горизонтально проецирующую

прямую АВ. При этом | А2 В2 |=| А2 В2 |, горизонтальные проекции А1 , В1 точек А, В перемещаются по прямой S1 – вырожденной проекции фронтальной плоскости уровня S, в которой перемещаются точки А, В.

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

27

Решение основных задач способом плоскопараллельного движения

3. Построить центр О окружности м, описанной около треугольника АВС.

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

28

Решение основных задач способом плоскопараллельного движения

3. Построить центр О окружности м, описанной около треугольника АВС.

{нажмите клавишу <enter>}

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

Одним плоскопараллельным движением плоскость общего положения нельзя преобразовать в плоскость уровня. Поэтому выполним последовательно два плоскопараллельных движения треугольника АВС: сначала относительно фронтальной плоскости П1 .

При первом плоскопараллельном движении

u

 

 

плоскость

треугольника

АВС преобразуем в

проецирующую

плоскость. Для этого фронтальную проекцию

 

2

 

2

 

2 образа

расположен

так, чтобы фронталь

 

 

(

 

1 ,

 

2 ) стала

А

B

С

f

f

f

горизонтально проецирующей. При этом |А2В2С2|=| А2 B2 С2 |, а горизонтальные проекции А1, В1, С1 вершин А, В, С треугольника опишут соответственно прямые Ф1, W1, Г1 – вырожденные проекции фронтальных плоскостей уровня, проведенных через эти вершины.

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

29

А2 B2 С2

Решение основных задач способом плоскопараллельного движения

Вторым плоскопараллельным движением u относительно П1 треугольник АВС преобразуем в треугольник АВС ,

расположенный во фронтальной плоскости уровня. При этом отрезки В1С1 , В1С1 конгруэнтны, и последний располагаем перпендикулярно линиям связи. Поэтому фронтальная проекции определяет натуральные размеры треугольника АВС.

{нажмите клавишу <enter>}

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

30

Решение основных задач способом плоскопараллельного движения

Вторым плоскопараллельным движением u относительно П1 треугольник АВС преобразуем в треугольник АВС ,

расположенный во фронтальной плоскости уровня. При этом отрезки В1С1 , В1С1 конгруэнтны, и последний располагаем перпендикулярно линиям связи. Поэтому фронтальная проекции А2 B2 С2 определяет натуральные размеры треугольника АВС.

{нажмите клавишу <enter>}

Известными построениями находим фронтальную проекцию О2 центра О искомой окружности, по линиям связи

находим его горизонтальную проекцию О1 . Обратными преобразованиями u1,u1 находим проекции О1, О2 центра О описанной вокруг треугольника АВС окружности.

PgUp – предыдущая страница

PgDn – следующая страница

Esc – выход

31

uses crt,graph; var

c:char;

GD,GM,kod,ukaz,s:integer;

i:longint;

procedure setka; begin

for i:=0 to 19 do line(20*i,26,20*i,26+14*22);

for i:=0 to 22 do line(0,26+14*i,20*19,26+14*i);

end;

procedure ent(n{,t}:integer); begin

repeat

{ if t=1 then repeat

outtextxy(315,80,' нажмите клавишу <enter> '); for i:=1 to 300000 do begin end;

bar(315,80,600,90);

for i:=1 to 300000 do begin end; until keypressed;}

c:=readkey;

kod:=ord(c);

if kod=73 then begin s:=s-1;

if s=0 then begin s:=1; kod:=33; end

else exit;

end;

if kod=81 then begin s:=s+1;

if s>n then begin s:=n; kod:=33; end

else exit;

32

end;

if kod=27 then exit;

until kod=13; end;

procedure niz; begin

setcolor(8);

setbkcolor(15);

outtextxy(10,340,' PgUp - предидущая страница PgDn - следующая страница

Esc - выход '); end;

procedure otkr_gr; begin

Gd:=0;

InitGraph(GD,GM,'');

setfillstyle(1,0);

setcolor(black);

bar(0,0,getmaxx,getmaxy);

end;

procedure nazv1; begin

settextstyle(0,0,1);

setcolor(8);

setbkcolor(15);

outtextxy(80,14,'Решение основных задач способом замены плоскостей проекций');

Line(79,24,546,24);

end;

procedure nazv2; begin

settextstyle(0,0,1);

setcolor(8);

setbkcolor(15);

outtextxy(70,14,'Решение основных задач способом плоскопараллельного движения');

Line(69,24,556,24);

end;

procedure t_ka(x,y:integer); begin

33

setfillstyle(1,0);

circle(x,y,3);

{ floodfill(x,y,0);} end;

procedure ris1; begin

setcolor(8);

setbkcolor(15); Line(2*20,26+14*6,12*20,26+14*6); {x12} Line(2*20+1,27+14*6,12*20,27+14*6); Line(2*20,26+14*6,2*20+10,30+14*6); {стрелки} Line(2*20,26+14*6,2*20+10,22+14*6); Line(5*20,25+14*2,11*20,25+14*4); {A2B2} Line(5*20,26+14*2,11*20,26+14*4); Line(5*20,27+14*2,11*20,27+14*4); Line(20*5,25+11*14,11*20,25+14*7); {A1B1} Line(20*5,26+11*14,11*20,26+14*7); Line(20*5,27+11*14,11*20,27+14*7); Line(20*5,26+14*2,20*5,26+14*11); {A1A2} Line(11*20,26+14*4,11*20,26+14*7); {B1B2}

t_ka(5*20,26+14*2); {A2} t_ka(11*20,26+14*4); {B2} t_ka(5*20,26+14*11); {A1} t_ka(11*20,26+14*7); {B1} outtextxy(10,26+14*6-4,'X'); outtextxy(20,26+14*6-1,'12'); outtextxy(20*2+10,26+14*5,'П'); outtextxy(20*3,26+14*5+3,'2'); outtextxy(20*2+12,26+14*6+6,'П'); outtextxy(20*3,26+14*6+9,'1'); outtextxy(20*4+10,26+14*1,'A'); outtextxy(20*5,26+14*1+3,'2'); outtextxy(11*20,26+14*3,'B'); outtextxy(11*20+10,26+14*3+3,'2'); outtextxy(20*4,26+14*11-10,'A'); outtextxy(20*4+8,26+14*11-7,'1'); outtextxy(20*11+5,26+14*7-10,'B'); outtextxy(20*11+13,26+14*7-7,'1');

end;

procedure ris2; begin

setcolor(8);

setbkcolor(15); Line(20*4,26+14*14,20*13,26+14*8); {x_12} Line(20*4+1,25+14*14,20*13,25+14*8);

Line(20*4,26+14*14,20*4+10,26+14*14-8); {стрелки} Line(20*4,26+14*14,20*4+15,26+14*14-3); outtextxy(20*3-10,26+14*14-4,'X'); outtextxy(20*3-11,26+14*14-10,'-'); outtextxy(20*3,26+14*14-1,'12'); outtextxy(20*4+3,26+14*13-7,'П'); outtextxy(20*4+11,26+14*13-4,'1'); outtextxy(20*5-12,26+14*14+5,'П'); outtextxy(20*5-13,26+14*14-1,'-'); outtextxy(20*5-2,26+14*14+8,'2');

34

end;

procedure ris3; begin

setcolor(8);

setbkcolor(15); Line(11*20,26+14*7,20*13-2,26+14*10+4); {B1B_2} Line(20*5,26+14*11,20*8-3,26+14*16); {A1A_2} Line(20*13-2,25+14*10+4,20*8-3,25+14*16); {A_2B_2} Line(20*13-2,26+14*10+4,20*8-3,26+14*16); Line(20*13-2,27+14*10+4,20*8-3,27+14*16); arc(20*12+1,26+14*9-5,124,209,15); {дуга} putpixel(20*12-8,26+14*9-6,14); {точка} circle(20*12-8,26+14*9-6,1);

Line(20*7-10,26+14*14+5,20*8-10,26+14*14+7); {штрихи} Line(20*12-1,26+14*9+4,20*13-3,26+14*9+6); Line(20*12+3,26+14*9+8,20*13-1,26+14*9+10); Line(20*5-4,26+14*4-4,20*5+4,26+14*4+4); {штрихи} Line(11*20-4,26+14*5-5,11*20+4,26+14*5-1); Line(11*20-4,26+14*5+1,11*20+4,26+14*5+5); t_ka(5*20,26+14*11); {A1} t_ka(11*20,26+14*7); {B1} t_ka(8*20-3,26+14*16); {A_2} t_ka(13*20-2,26+14*10+4); {B_2}

outtextxy(20*9-12,26+14*16-8,'-'); outtextxy(20*9-11,26+14*16-2,'A'); outtextxy(20*8+19,26+14*16+1,'2'); outtextxy(20*13+5,26+14*10-6,'-'); outtextxy(13*20+6,26+14*10,'B'); outtextxy(14*20-4,26+14*10+3,'2');

end;

procedure ris4; begin

setcolor(8);

setbkcolor(15); Line(13*20-2,26+14*10+4,20*5+4,26+14*19); {B_2A__1}

t_ka(8*20-3,26+14*16); {A_2} t_ka(13*20-2,26+14*10+4); {B_2} t_ka(5*20+4,26+14*19); {A__1} Line(20*4+14,26+14*16,20*9-10,26+14*20-3); {X__21} Line(20*4+15,26+14*16,20*9-9,26+14*20-3); Line(20*4+14,26+14*16,20*5+6,26+14*16+12); {стрелки} Line(20*4+14,26+14*16,20*5+14,26+14*16+8); arc(20*6+8,26+14*18-4,318,50,15); {дуга} putpixel(20*6+17,26+14*18-5,14); {точка} circle(20*6+17,26+14*18-5,1); Line(20*6,26+14*12-1,20*5+5,26+14*12+1); {галка} Line(20*5+5,26+14*12+1,20*6-4,26+14*12-6); Line(20*6-6,26+14*18-1,20*6-1,26+14*18+10); {галка} Line(20*6-6,26+14*18-1,20*6+5,26+14*18+7);

35

outtextxy(20*3+5,26+14*16-6,'X'); outtextxy(20*3+4,26+14*16-13,'-'); outtextxy(20*3+4,26+14*16-15,'-'); outtextxy(20*3+15,26+14*16-3,'12'); outtextxy(20*4+10,26+14*17-6,'-'); outtextxy(20*4+10,26+14*17-9,'-'); outtextxy(20*4+10,26+14*17,'П'); outtextxy(20*4+17,26+14*17+3,'1'); outtextxy(20*5+10,26+14*16-1,'П'); outtextxy(20*5+10,26+14*16-8,'-'); outtextxy(20*5+20,26+14*16+2,'2');

outtextxy(20*4,26+14*20-7,'A = B'); outtextxy(20*4,26+14*20-4,' 1 1'); outtextxy(20*4-1,26+14*19-3,'_ _'); outtextxy(20*4-1,26+14*19-6,'_ _');

end;

procedure ris31; begin

setcolor(8);

setbkcolor(15); Line(2*20,26+14*11,7*20+10,26+14*11); {x12} Line(2*20+1,27+14*11,7*20+10,27+14*11); Line(2*20,26+14*11,2*20+10,30+14*11); {стрелки} Line(2*20,26+14*11,2*20+10,22+14*11); Line(20*3,25+14*17,7*20,25+14*13); {A1B1} Line(20*3,26+14*17,7*20,26+14*13); Line(20*3,27+14*17,7*20,27+14*13); Line(20*3,25+14*17,6*20,25+14*21); {A1C1} Line(20*3,26+14*17,6*20,26+14*21); Line(20*3,27+14*17,6*20,27+14*21); Line(20*7-1,26+14*13,6*20-1,26+14*21); {B1C1} Line(20*7,26+14*13,6*20,26+14*21); Line(20*7+1,26+14*13,6*20+1,26+14*21); Line(3*20,25+14*3,7*20,25+14*3+3); {A2B2} Line(3*20,26+14*3,7*20,26+14*3+3); Line(3*20,27+14*3,7*20,27+14*3+3); Line(3*20,25+14*3,6*20,25+14*6+4); {A2С2} Line(3*20,26+14*3,6*20,26+14*6+4); Line(3*20,27+14*3,6*20,27+14*6+4); Line(20*7-1,26+14*3+3,6*20-1,26+14*6+4); {B2C2} Line(20*7,26+14*3+3,6*20,26+14*6+4); Line(20*7+1,26+14*3+3,6*20+1,26+14*6+4); Line(20*3,26+14*17,20*3,26+14*3); {A1A2} Line(7*20,26+14*3+3,7*20,26+14*13); {B1B2} Line(6*20,26+14*21,6*20,26+14*6+4); {B1B2}

t_ka(3*20,26+14*17); {A1} t_ka(7*20,26+14*13); {B1} t_ka(6*20,26+14*21); {C1} t_ka(6*20,26+14*6+4); {C2} t_ka(3*20,26+14*3); {A2} t_ka(7*20,26+14*3+3); {B2} outtextxy(10,26+14*11-4,'X'); outtextxy(20,26+14*11-1,'12');

36

outtextxy(20*2,26+14*10-1,'П'); outtextxy(20*3-10,26+14*10+2,'2'); outtextxy(20*2+3,26+14*11+6,'П'); outtextxy(20*3-10,26+14*11+9,'1'); outtextxy(20*2,26+14*3,'A'); outtextxy(20*2+10,26+14*3+3,'2'); outtextxy(7*20-5,26+14*2+3,'B'); outtextxy(7*20+5,26+14*2+6,'2'); outtextxy(5*20,26+14*6+3,'C'); outtextxy(5*20+10,26+14*6+6,'2'); outtextxy(20*2+5,26+14*17+5,'A'); outtextxy(20*2+13,26+14*17+8,'1'); outtextxy(20*7+5,26+14*13-10,'B'); outtextxy(20*7+13,26+14*13-7,'1'); outtextxy(20*6+6,26+14*21-2,'C'); outtextxy(20*6+12,26+14*21+1,'1');

end;

procedure ris32; begin

setcolor(8);

setbkcolor(15); Line(20*2,26+14*17,20*8,26+14*17); {f1}

Line(20*6+10,26+14*16+5,20*6+10,26+14*5-4); {1112} Line(20*2,26+14*2+7,20*8,26+14*5+7); {f2} Line(20*10+10,26+14*2,20*8-3,26+14*8); {x_21} Line(20*10+9,26+14*2,20*8-4,26+14*8); Line(20*10+10,26+14*2,20*10+7,26+14*2+12); {стрелки} Line(20*10+10,26+14*2,20*10-2,26+14*2+10); t_ka(3*20,26+14*17); {A1} t_ka(20*6+10,26+14*17); {11} t_ka(20*6+10,26+14*5-4); {12} t_ka(3*20,26+14*3); {A2}

outtextxy(20*2-5,26+14*16+2,'f'); outtextxy(20*2+3,26+14*16+5,'1'); outtextxy(20*7-6,26+14*17+3,'1'); outtextxy(20*7+2,26+14*17+6,'1'); outtextxy(20*7+1,26+14*4+6,'1'); outtextxy(20*7+11,26+14*4+8,'2'); outtextxy(20*10,26+14*1+3,'X'); outtextxy(20*10,26+14*1-6,'_'); outtextxy(20*10+10,26+14*1+6,'21'); outtextxy(20*11-8,26+14*2+7,'П'); outtextxy(20*11,26+14*2+10,'1'); outtextxy(20*9-1,26+14*2+3,'П'); outtextxy(20*11-9,26+14*2+1,'-'); outtextxy(20*9+9,26+14*2+5,'2');

end;

procedure ris33; begin

setcolor(8);

setbkcolor(15); Line(20*8,26+14*5+7,20*14-3,26+14*8+6); {A2A_1} Line(20*7,26+14*3+3,20*11+2,26+14*5+4); {B2B_1} Line(20*6,26+14*6+4,20*17-6,26+14*12-5); {C2C_1} Line(20*10-4,26+14*5-1,20*10+4,26+14*5-6); {штрихи} Line(20*7+3,26+14*12-4,20*7-3,26+14*12+4); Line(20*3+3,26+14*14-4,20*3-3,26+14*14+4); Line(20*3+3,26+14*14+1,20*3-3,26+14*14+9); Line(20*6+3,26+15*14,20*6-3,26+14*15+8); Line(20*6+3,26+15*14+5,20*6-3,26+14*15+13);

37

Line(20*6+3,26+15*14+10,20*6-3,26+14*15+18); Line(20*10-6,26+14*8+4,20*10+6,26+14*8+4); Line(20*10,26+14*8+6,20*10+12,26+14*8+6); Line(20*10+6,26+14*8+8,20*10+18,26+14*8+8); Line(20*13-3,26+14*8-4,20*13+3,26+14*8+4); Line(20*13-8,26+14*8-6,20*13-2,26+14*8+2); Line(20*11+2,25+14*5+4,20*17-6,25+14*12-5); {B_1C_1} Line(20*11+2,26+14*5+4,20*17-6,26+14*12-5); Line(20*11+2,27+14*5+4,20*17-6,27+14*12-5); t_ka(14*20-3,26+14*8+6); {A_1} t_ka(20*11+2,26+14*5+4); {B_1} t_ka(17*20-6,26+14*12-5); {C_1} t_ka(6*20,26+14*6+4); {C2} t_ka(7*20,26+14*3+3); {B2}

outtextxy(20*14+3,26+14*8-3,'A = f'); outtextxy(20*14+11,26+14*8,'1 1'); outtextxy(20*14+2,26+14*8-10,'- -'); outtextxy(20*11+7,26+14*5-10,'-'); outtextxy(20*11+8,26+14*5-3,'B'); outtextxy(20*11+16,26+14*5,'1'); outtextxy(20*17+3,26+14*11+1,'C'); outtextxy(20*17+11,26+14*11+4,'1'); outtextxy(20*17+2,26+14*11-6,'-'); outtextxy(20*2-5,26+14*1+9,'f'); outtextxy(20*2+5,26+14*1+12,'2');

end;

procedure ris34; begin

setcolor(8);

setbkcolor(15); Line(20*9+10,26+14*5,20*17+4,26+13*14+6); {x_21} Line(20*9+10,25+14*5,20*17+4,25+14*13+6); Line(20*17+4,26+14*13+6,20*16+8,26+14*13-1); {стрелки} Line(20*17+4,26+14*13+6,20*17-5,26+14*13-6); Line(20*8+11,26+14*14,20*14-3,26+14*8+6); {A__2A_1} Line(20*8+12,26+14*8-2,20*11+2,26+14*5+4); {B__2B_1} Line(20*14+8,26+14*14,20*17-6,26+14*12-5); {C__2C_1}

Line(20*8+12,25+14*8-2,20*14++10,25+14*14-1); {B__2C__2} Line(20*8+12,26+14*8-2,20*14+10,26+14*14-1); Line(20*8+12,27+14*8-2,20*14+10,27+14*14-1); Line(20*8+11,25+14*14,20*14+10,25+14*14-1); {A__2C__2} Line(20*8+11,26+14*14,20*14+10,26+14*14-1); Line(20*8+11,27+14*14,20*14+10,27+14*14-1); Line(20*8+12,26+14*14,20*8+13,26+14*8-2); {A__2B__2} Line(20*8+11,26+14*14,20*8+12,26+14*8-2); Line(20*8+10,26+14*14,20*8+11,26+14*8-2); t_ka(14*20-3,26+14*8+6); {A_1} t_ka(20*11+2,26+14*5+4); {B_1} t_ka(17*20-6,26+14*12-5); {C_1} t_ka(20*8+11,26+14*14); {A__2}

t_ka(20*8+12,26+14*8-2); {B__2} t_ka(20*14+10,26+14*14-1); {C__2} outtextxy(20*17,26+14*14+1,'X'); outtextxy(20*17,26+14*14-7,'='); outtextxy(20*17+10,26+14*14+4,'12'); outtextxy(20*17+5,26+14*12+9,'П');

38

outtextxy(20*17+5,26+14*12+2,'-'); outtextxy(20*17+13,26+14*12+12,'1'); outtextxy(20*16,26+14*13+7,'П'); outtextxy(20*16,26+14*13,'='); outtextxy(20*16+10,26+14*13+10,'2'); arc(20*16+2,26+14*12+3,140,230,15); {дуга} putpixel(20*16-6,26+14*12+3,14); {точка} circle(20*16-6,26+14*12+3,1);

arc(20*4+11,26+14*4-4,80,330,5); arc(20*5,26+14*4,0,150,5); arc(20*5,26+14*4,280,0,5); arc(20*10+1,26+14*13-8,130,0,5); arc(20*10+1,26+14*13-8,0,50,5); arc(20*10+8,26+14*12+1,0,220,5); arc(20*10+8,26+14*12+1,340,360,5); Line(20*8,26+14*4,20*8,26+14*4-8); Line(20*8,26+14*4,20*8+4,26+14*4-7); Line(20*8-10,26+14*7+4,20*8-10,26+14*7-4); Line(20*8-10,26+14*7+4,20*8-6,26+14*7-3); Line(20*8-7,26+14*7+5,20*8-3,26+14*7-2); Line(20*15,26+14*13+1,20*15,26+14*13+10); Line(20*15-4,26+14*13+2,20*15,26+14*13+10); Line(20*15+3,26+14*13-1,20*15+3,26+14*13+8); Line(20*9+10,26+14*7-4,20*9+10,26+14*7+4); Line(20*9+6,26+14*7-3,20*9+10,26+14*7+4);

outtextxy(20*8+6,26+14*14+10,'A'); outtextxy(20*8+16,26+14*14+13,'2'); outtextxy(20*7+10,26+14*8,'='); outtextxy(20*8+5,26+14*14+3,'='); outtextxy(20*7+11,26+14*8+7,'B'); outtextxy(20*8,26+14*8+10,'2'); outtextxy(20*14+6,26+14*14+9,'C'); outtextxy(20*14+15,26+14*14+12,'2'); outtextxy(20*14+5,26+14*14+2,'=');

end;

procedure list1; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

setcolor(8);

setbkcolor(15);

nazv1;

setcolor(8);

setbkcolor(15);

niz;

setcolor(8);

setbkcolor(15);

outtextxy(10,50,' Путем замены исходных ("старых") плоскостей проекций геометрические фигуры');

39

outtextxy(10,60,'приводятся в частное положение относительно новых плоскостей проекций. При');

outtextxy(10,70,'этом решение поставленных задач значительно упрощается, если преобразование f');

outtextxy(10,80,'одной системы плоскостей проекций в другую представить как

композицию (произ-');

 

 

outtextxy(10,82,'

_

');

outtextxy(10,84,'

_ _

');

outtextxy(10,93,'ведение) двух преобразований f, f. При этом исходная и новая

системы коорди-');

 

 

outtextxy(10,103,'нат будут иметь общее начало.

');

outtextxy(10,105,'

_

');

outtextxy(10,114,' При первом преобразовании f оставим неизменной одну из плоскостей проекций');

outtextxy(10,124,'исходной системы отнесения, а другую плоскость проекций заменим на новую.');

outtextxy(10,134,'С линиец пересечения плоскостей проекций будем совмещать

всегда ось x новой');

 

 

outtextxy(10,136,'

_

');

outtextxy(10,138,'

_

');

outtextxy(10,147,'системы коордиyнат. При втором преобразовании f заменяется оставшаяся плос-');

outtextxy(10,157,'кость проекций исходной системы отнесения. Здесь также будем соблюдать сде-');

outtextxy(10,167,'ланные выше ограничения.'); ent(7);

if kod<>13 then exit;

s:=s+1;

end;

procedure list2; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

setcolor(8);

setbkcolor(15);

nazv1;

setcolor(8);

setbkcolor(15);

ris1;

setcolor(8);

setbkcolor(15);

niz;

40

setcolor(8);

setbkcolor(15);

outtextxy(300,40,'1. Преобразовать прямую (AB) общего поло-'); outtextxy(315,50,'жения в прямую уровня или, другими сло-'); outtextxy(315,60,'вами , определить натуральную длину '); outtextxy(315,70,'отрезка [AB].');

outtextxy(315,80,'

{ нажмите клавишу <enter> } ');

ent(7);

 

if kod<>13 then

 

exit;

 

setcolor(8);

 

setbkcolor(15);

 

ris2;

 

setcolor(8);

 

setbkcolor(15);

 

outtextxy(300,100,'

Для решения этой задачи выбираем новую');

outtextxy(315,110,'плоскость проекций параллельно данной'); outtextxy(315,120,'прямой. На рисунке новая фронтальная'); outtextxy(315,122,' _ '); outtextxy(315,131,'плоскость проекций П выбрана параллель-');

outtextxy(315,134,'

2

');

outtextxy(315,135,'

_

');

outtextxy(315,142,'но AB, т.е. новая ось x

выбрана парал-');

outtextxy(315,145,'

12

');

outtextxy(315,152,'лельно горизонтальной проекции A B пря-');

outtextxy(315,155,'

 

1 1

');

outtextxy(315,162,'мой AB.

 

');

outtextxy(315,172,'

{ нажмите клавишу <enter> } ');

ent(7);

 

 

 

if kod<>13 then

 

 

 

exit;

 

 

 

ris3;

 

 

 

setcolor(8);

 

 

 

setbkcolor(15);

 

 

 

outtextxy(300,183,'

_ _

 

');

outtextxy(300,192,'

Проекция A B

на новой плоскости про-');

outtextxy(300,195,'

2 2

 

');

outtextxy(315,194,'

_

_

_ ');

outtextxy(315,203,'екций П определяется проекциями A ,B ');

outtextxy(315,206,'

2

2 2');

outtextxy(315,213,'ее точек A, B.

');

outtextxy(300,223,'

Правило: при замене фронтальной плос-');

outtextxy(315,233,'кости проекций на новую остается неиз-'); outtextxy(315,243,'менной аппликата (высота) данной точки. '); outtextxy(315,253,' { нажмите клавишу <enter> } ');

41

ent(7);

if kod<>13 then exit;

outtextxy(10,273,' Очевидно, эта задача также легко решается заменой

горизонтальной плоскости');

 

 

 

outtextxy(10,275,'

_

_

_ ');

outtextxy(10,284,'проекций П на новую плоскость проекций П . Для этого

новую ось x = П /\ П ');

 

 

 

outtextxy(10,287,'

1

1

21 2 1');

outtextxy(10,294,'нужно выбрать параллельно фронтальной проекции A B

данной прямой. Построение');

 

 

outtextxy(10,297,'

 

2 2

');

outtextxy(10,296,'

_ _

 

');

outtextxy(10,305,'новых проекций A , B

точек A, B выполняется по правилу:

при замене горизон-');

 

 

 

outtextxy(10,308,'

1 1

 

');

outtextxy(10,315,'тальной плоскости проекций на новую остается неизменной ордината ( глубина)');

outtextxy(10,325,'данной точки.'); ent(7);

if kod<>13 then exit;

s:=s+1;

end;

procedure list3; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

setcolor(8);

setbkcolor(15);

nazv1;

niz;

ris1; ris2; ris3; setcolor(8); setbkcolor(15);

outtextxy(300,40,' Приведем аналитическое решение этой'); outtextxy(315,50,'задачи. Пусть прямая AB задана системой');

outtextxy(315,60,'уравнений :

');

outtextxy(315,70,'(1)

y = k x + b

,z = k x + b ');

outtextxy(315,73,'

1 1

2 2 ');

outtextxy(315,83,' Заменим фронтальную плоскость проекций'); outtextxy(315,85,' _ ');

outtextxy(315,94,'П на новую плоскость П , параллельную'); 42

outtextxy(315,97,' 2

 

2

 

');

 

 

outtextxy(315,99,'

 

_

');

 

 

outtextxy(315,108,'прямой AB. Плоскость П определяется');

 

 

outtextxy(315,111,'

 

2

 

');

 

 

outtextxy(315,118,'уравнением :

 

');

 

 

outtextxy(315,128,'

 

y = k x

 

');

 

 

outtextxy(315,131,'

 

1

 

');

 

 

outtextxy(315,138,' Отсюда

 

');

 

 

outtextxy(315,150,'

 

k

 

');

 

 

outtextxy(315,153,'

 

1

 

');

 

 

line(450,161,550,161);

line(470,165,540,165);

 

 

line(455,170,457,170);

line(457,170,457,183);

 

 

line(458,170,458,182);

line(458,183,470,165);

 

 

outtextxy(315,156,'(2)

sin a =

;

');

 

 

outtextxy(315,167,'

 

2

 

');

 

 

outtextxy(315,171,'

 

1 + k

 

');

 

 

outtextxy(315,175,'

 

1

 

');

 

 

outtextxy(315,195,'

 

1

 

');

 

 

line(450,203,550,203);

line(470,207,540,207);

 

 

line(455,212,457,212);

line(457,212,457,225);

 

 

line(458,212,458,225);

line(458,225,470,207);

 

 

outtextxy(315,198,'(3)

cos a =

.

');

 

 

outtextxy(315,209,'

 

2

 

');

 

 

outtextxy(315,213,'

 

1 + k

 

');

 

 

outtextxy(315,217,'

 

1

 

');

 

 

outtextxy(315,227,'

a - угол поворота осей координат. ');

 

 

outtextxy(315,237,'Он будет положителен, если вращение ');

 

 

outtextxy(315,247,'осуществляется против движения часовой');

 

 

outtextxy(315,257,'стрелки.');

 

 

 

 

outtextxy(300,267,'

При замене горизонтальной плоскости');

 

 

outtextxy(10,269,'

 

 

_

');

 

outtextxy(10,278,'проекций П на новую плоскость проекций П

 

');

outtextxy(10,281,'

1

 

 

1

');

 

outtextxy(10,280,'

 

 

 

_

');

 

outtextxy(10,290,'

 

 

 

x = x * cos a + z * sin a ,

');

outtextxy(10,292,'

 

 

 

_

');

 

outtextxy(10,301,'

 

 

 

y = y ,

');

 

outtextxy(10,303,'

 

 

 

_

');

 

outtextxy(10,312,'

 

 

 

z = - x * sin a + z * cos a

; ');

ent(7);

 

 

 

 

 

 

if kod<>13 then

 

 

 

 

 

 

exit;

s:=s+1;

end;

43

procedure list4; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

setcolor(8);

setbkcolor(15);

nazv1;

niz;

setcolor(8);

setbkcolor(15); ris1; ris2; ris3; setcolor(8); setbkcolor(15);

outtextxy(300,40,' При замене фронтальной плоскости про-');

outtextxy(315,42,'

 

_

');

 

 

outtextxy(315,51,'екций П на новую плоскость П :

');

outtextxy(315,53,'

2

2

');

 

 

outtextxy(315,58,'

_

 

');

 

 

outtextxy(315,67,'

x = x * cos a + y * sin a ,

');

 

outtextxy(315,72,'

_

 

');

 

 

outtextxy(315,80,'(4)

y = - x * sin a + y * cos a

, ');

 

outtextxy(315,86,'

_

 

');

 

 

outtextxy(315,94,'

z = z .

 

');

 

 

outtextxy(315,109,'Подставив (2) и (3)

в (4) и вы-');

 

outtextxy(315,111,'

_

_ _

');

 

 

outtextxy(315,120,'разив x, y, z через x, y, z получа-'); outtextxy(315,130,'ем формулы обратного преобразования :');

outtextxy(345,153,'x =

;');

outtextxy(424,136,'_');

 

outtextxy(425,145,'x');

 

line(375,156,475,156);

line(395,160,465,160);

line(380,165,382,165);

line(382,165,382,178);

line(383,165,383,177);

line(383,178,395,160);

outtextxy(403,164,' 2'); outtextxy(403,168,'1 + k '); outtextxy(403,174,' 1'); outtextxy(485,153,'-'); outtextxy(536,136,' _'); outtextxy(536,145,'k y'); outtextxy(543,148,'1');

line(500,156,600,156); line(520,160,590,160); line(505,165,507,165); line(507,165,507,178); line(508,165,508,177); line(508,178,520,160); outtextxy(528,164,' 2');

44

outtextxy(528,168,'1 + k ');

outtextxy(528,174,'

1');

outtextxy(300,205,'(5)');

 

outtextxy(345,205,'y =

;');

outtextxy(410,188,'

_');

 

outtextxy(410,197,'k x');

 

outtextxy(408,200,' 1');

 

line(375,208,475,208);

line(395,212,465,212);

line(380,217,382,217);

line(382,217,382,230);

line(383,217,383,229);

line(383,230,395,212);

outtextxy(403,216,'

2');

outtextxy(403,220,'1 + k ');

outtextxy(403,226,'

1');

outtextxy(485,205,'-');

 

outtextxy(536,188,'_');

 

outtextxy(536,197,'y');

 

line(500,208,600,208);

line(520,212,590,212);

line(505,217,507,217);

line(507,217,507,230);

line(508,217,508,229);

line(508,230,520,212);

outtextxy(528,216,'

2');

outtextxy(528,220,'1 + k ');

outtextxy(528,226,'

1');

outtextxy(345,236,'

_

');

outtextxy(345,245,'z = z

.');

outtextxy(315,260,'Подставив значения x, y, z из (5) в (1),');

outtextxy(10,270,'получаем уравнение прямой AB, в новой системе координат :

);

 

 

 

 

outtextxy(10,280,'проекций П на новую плоскость проекций П :

');

outtextxy(215,286,'

_

_

');

 

outtextxy(215,295,'

k (x - k y)

');

 

outtextxy(215,298,'

2

1

');

 

line(355,306,455,306);

line(375,310,445,310);

 

line(360,315,362,315);

line(362,315,362,328);

 

line(363,315,363,327);

line(363,328,375,310);

 

outtextxy(215,292,'

_

');

 

outtextxy(215,301,'

y =

 

');

outtextxy(215,303,'

 

+ b .');

outtextxy(215,307,'

 

2

');

outtextxy(215,314,'

 

2

');

outtextxy(215,319,'

 

1 + k

');

outtextxy(215,323,'

 

1

');

outtextxy(15,295,'

 

b

');

outtextxy(15,298,'

 

1

');

line(155,306,255,306);

line(175,310,245,310);

line(160,315,162,315);

line(162,315,162,328);

45

line(163,315,163,327);

line(163,328,175,310);

outtextxy(15,292,'

_

');

 

 

outtextxy(15,301,'

y =

 

;

');

outtextxy(15,314,'

 

2

 

');

outtextxy(15,319,'

 

1 + k

 

');

outtextxy(15,323,'

 

1

 

');

ent(7);

 

 

 

 

if kod<>13 then

 

 

 

 

exit;

 

 

 

 

s:=s+1;

end;

procedure list5; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

setcolor(8);

setbkcolor(15);

nazv1;

ris1;

niz;

setcolor(8);setbkcolor(15);

outtextxy(300,40,'2. Преобразовать прямую (AB) общего поло-');

outtextxy(315,50,'жения в проецирующую прямую.

');

outtextxy(315,60,'

{ нажмите клавишу <enter> }

');

ent(7);

if kod<>13 then exit;

ris2; ris3;

outtextxy(315,80,' Задачу решаем композицией двух преобра-');

outtextxy(315,82,'

_

_ ');

outtextxy(315,91,'зований.

Преобразованием f(П -> П )');

outtextxy(315,94,'

2

2 ');

outtextxy(315,101,'прямую AB преобразуем в прямую уровня в');

outtextxy(315,103,'

_

 

');

 

outtextxy(315,112,'системе П , П (см. задачу 1).

');

outtextxy(315,115,'

1 2

 

');

 

outtextxy(315,125,'

{ нажмите клавишу <enter> }

');

ent(7);

 

 

 

 

if kod<>13 then

 

 

 

 

exit;

 

 

 

 

ris4;

 

 

 

 

outtextxy(315,134,'

_

_

');

 

outtextxy(315,136,'

_

_

');

 

46

outtextxy(315,145,' Вторым преобразованием f(П -> П ), где');

outtextxy(315,148,'

1

1

');

outtextxy(315,150,'

_

 

');

outtextxy(315,152,'

_

 

');

outtextxy(315,161,'новая плоскость проекций П выбирается');

outtextxy(315,163,'

 

1

');

outtextxy(315,165,'

 

_

');

outtextxy(315,167,'

_ _

_

');

outtextxy(315,176,'перпендикулярно AB (A B __ x ), в сис-');

outtextxy(315,179,'

 

2 2 21

');

line(523,173,523,183);

 

 

outtextxy(315,181,'

_

 

');

outtextxy(315,183,'

_ _

 

');

outtextxy(315,192,'теме П ,П получаем проецирующую прямую.');

outtextxy(315,195,'

1 2

');

ent(7);

 

 

if kod<>13 then

 

 

exit;

 

 

s:=s+1;

 

 

end;

 

 

procedure list6;

 

 

begin

 

 

setgraphmode(1);

 

 

setfillstyle(1,0);

 

 

bar(0,0,getmaxx,getmaxy);

setcolor(8);

nazv1;

niz;

ris31;

outtextxy(380,40,'3. Преобразовать плоскость обще-'); outtextxy(395,50,'го положения в проецирующую. '); outtextxy(395,60,' { нажмите клавишу <enter> } '); ent(7);

if kod<>13 then exit;

ris32;

outtextxy(380,80,' По условию задачи новая плос-'); outtextxy(395,90,'кость проекций должна быть'); outtextxy(395,100,'перпендикулярной данной плос-'); outtextxy(395,110,'кости Ф(A B C , A B C ). Это'); outtextxy(395,113,' 1 1 1 2 2 2 '); outtextxy(395,123,'условие будет выполнено, если'); outtextxy(395,133,'она будет перпендикулярна го-');

47

outtextxy(395,143,'ризонтали плоскости Ф при за-'); outtextxy(395,144,' _ '); outtextxy(395,154,'мене плоскости П на П или'); outtextxy(395,157,' 2 2 '); outtextxy(395,167,'фронтали плоскости Ф при заме-');

outtextxy(395,169,'

_

');

outtextxy(395,178,'не П на П .');

outtextxy(395,181,'

1

1 ');

outtextxy(380,191,'

На рисунке показано решение');

outtextxy(395,201,'этой задачи заменой горизон-'); outtextxy(395,211,'тальной плоскости проекций П ');

outtextxy(395,214,'

1');

outtextxy(395,215,'

_ ');

outtextxy(395,225,'на новую плоскость проекций П ');

outtextxy(395,228,'

 

 

1');

outtextxy(395,229,'

_

_

');

outtextxy(395,238,'Здесь Ф __ П , так как П __ ');

outtextxy(395,241,'

 

1

1 ');

line(619,235,619,245);

 

 

line(466,235,466,245);

 

 

outtextxy(395,242,'

_

');

 

outtextxy(395,251,'f

Ф(x

__ f ).');

 

outtextxy(395,254,'

21

2');

 

line(474,248,474,258); outtextxy(412,245,'_'); outtextxy(412,251,'_'); arc(411,251+4,90,270,3);

outtextxy(395,264,' { нажмите клавишу <enter> } ');

ent(7);

 

if kod<>13 then

 

exit;

 

ris33;

 

outtextxy(380,274,'

_ ');

outtextxy(380,284,'

Построение новых проекций A ,');

outtextxy(380,287,'

 

1,');

outtextxy(395,288,'_ _

');

outtextxy(395,298,'B , C , точек A , B , C плос-'); outtextxy(395,301,' 1 1 1 1 1 '); outtextxy(395,311,'кости Ф ясно из рисунка.'); ent(7);

if kod<>13 then exit;

s:=s+1;

end;

48

procedure list7; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

setcolor(8);

nazv1;

niz;

ris31;

outtextxy(380,40,'4. Преобразовать плоскость обще-'); outtextxy(395,50,'го положения Ф(A, B, C) в пло-'); outtextxy(395,60,'скость уровня, т.е. определить'); outtextxy(395,70,'натуральные размеры треуголь-'); outtextxy(395,80,'ника ABC.');

outtextxy(395,90,' { нажмите клавишу <enter> } '); ent(7);

if kod<>13 then exit;

ris32; ris33;

outtextxy(380,100,' Нетрудно показать, что реше-'); outtextxy(395,110,'ние этой задачи требует пос-'); outtextxy(395,120,'ледовательного выполнения двух'); outtextxy(395,130,'замен плоскостей проекций(ком-'); outtextxy(395,140,'позиции двух преобразований ),'); outtextxy(395,150,'так как невозможно выбрать но-'); outtextxy(395,160,'вую плоскость проекций, кото-'); outtextxy(395,170,'рая была бы одновременно па-'); outtextxy(395,180,'ралллельной плоскости Ф и пер-'); outtextxy(395,190,'пендикулярной одной из плос-'); outtextxy(395,200,'костей проекций исходной сис-'); outtextxy(395,210,'темы П , П .');

outtextxy(395,213,'

1

2 ');

 

outtextxy(380,223,'

Поэтому первой заменой

');

outtextxy(395,225,'_

_

');

 

outtextxy(395,234,'f(П -> П ) плоскость Ф преоб-'); outtextxy(395,237,' 1 1 '); outtextxy(395,247,'разуем в проецирующую в сис-');

outtextxy(395,249,'

_

');

outtextxy(395,258,'теме П , П (см. задачу 3). ');

outtextxy(395,261,'

2 1

');

outtextxy(395,271,'

{ нажмите клавишу <enter> } ');

ent(7);

 

 

if kod<>13 then

 

 

49

exit;

 

 

 

ris34;

 

 

 

outtextxy(380,279,'

_

_

');

outtextxy(380,281,'

_

_

');

outtextxy(380,291,'

Второй заменой f(П -> П ),');

outtextxy(380,294,'

2

2

');

outtextxy(395,292,'

_

 

');

outtextxy(395,294,'

_

 

');

outtextxy(395,303,'где П || Ф, приводим ее в по-');

outtextxy(395,305,'

2

 

');

outtextxy(395,315,'ложение плоскости уровня в');

outtextxy(395,317,'

_

');

outtextxy(395,319,'

_ _

');

outtextxy(395,328,'системе П , П .');

outtextxy(395,331,'

1 2 ');

ent(7);

if kod<>13 then exit;

s:=s+1;

end;

procedure ris2_1; begin

setcolor(8); Line(20*3,25+14*4,20*6+5,25+14*2); {A2B2} Line(20*3,26+14*4,20*6+5,26+14*2); Line(20*3,27+14*4,20*6+5,27+14*2); Line(20*3,27+14*8+2,20*6+5,27+14*6); {A1B2} Line(20*3,25+14*8+2,20*6+5,25+14*6); Line(20*3,26+14*8+2,20*6+5,26+14*6); Line(20*3,26+14*4,20*3,26+14*8+2); {A1A2}

Line(20*6+5,26+14*2,20*6+5,26+14*6); {B1B2}

t_ka(20*3,26+14*4); {A2}

t_ka(20*3,26+14*8+2); {A1}

t_ka(20*6+5,26+14*2); {B2}

 

t_ka(6*20+5,26+14*6); {B1}

outtextxy(20*2,26+14*3,'A');

 

outtextxy(20*2+10,26+14*3+3,'2');

outtextxy(20*6,26+14*1,'B');

 

outtextxy(20*6+10,26+14*1+3,'2');

outtextxy(20*2,26+14*8+3,'A');

 

outtextxy(20*2+8,26+14*8+6,'1');

outtextxy(6*20+5,26+14*6+4,'B');

outtextxy(6*20+13,26+14*6+7,'1');

end;

procedure ris2_2; begin

setcolor(8); Line(20*8+10,25+14*6,20*12+8,25+14*6); {A_1B_1}

50

Line(20*8+10,26+14*6,20*12+8,26+14*6);

Line(20*8+10,27+14*6,20*12+8,27+14*6);

Line(20*5-3,26+14*7-7,20*5+7,26+14*7); Line(20*10+7,26+14*6-3,20*10+13,26+14*6+3); t_ka(20*8+10,26+14*6); {A_1} t_ka(20*12+8,26+14*6); {B_1} outtextxy(20*8,26+14*6+7,'A'); outtextxy(20*8+8,26+14*6+10,'1');

outtextxy(20*12+3,26+14*6+8,'B'); outtextxy(20*12+11,26+14*6+11,'1'); outtextxy(20*8,26+14*6-3,'_'); outtextxy(20*12+3,26+14*6-2,'_');

end;

procedure ris2_3; begin

setcolor(8);

Line(1*20+10,26+14*2,20*12+8,26+14*2);

Line(1*20+10,26+14*4,20*11+6,26+14*4); Line(20*8+10,25+14*4,20*12+8,25+14*2); {A_2B_2} Line(20*8+10,26+14*4,20*12+8,26+14*2); Line(20*8+10,27+14*4,20*12+8,27+14*2); Line(20*8+10,26+14*6,20*8+10,26+14*4); {A_2A_1} Line(20*12+8,26+14*6,20*12+8,26+14*2); {B_2B_1} Line(20*7,26+14*4-3,20*8-5,26+14*4); {стрелки} Line(20*7,26+14*4+3,20*8-5,26+14*4); Line(20*8-15,26+14*2-3,20*8,26+14*2); Line(20*8-15,26+14*2+3,20*8,26+14*2); arc(20*6+5,26+14*4,270,360,12); putpixel(20*6+10,26+14*4+4,14); circle(20*6+10,26+14*4+4,1); arc(20*8,26+14*4,0,20,50);

t_ka(20*8+10,26+14*4); {A_2} t_ka(20*12+8,26+14*2); {B_2} t_ka(20*8+10,26+14*6); {A_1} t_ka(20*12+8,26+14*6); {B_1} t_ka(20*3,26+14*4); {A2} t_ka(20*6+5,26+14*2); {B2} outtextxy(20*7+10,26+14*3,'A'); outtextxy(20*8,26+14*3+3,'2'); outtextxy(20*12+3,26+14*1,'B'); outtextxy(20*12+13,26+14*1+3,'2'); outtextxy(20*12+3,26+14*1-9,'_'); outtextxy(20*7+10,26+14*3-9,'_'); outtextxy(20*1-10,26+14*2-7,'W'); outtextxy(20*1,26+14*2-3,'2'); outtextxy(20*1-10,26+14*4-7,'Ф'); outtextxy(20*1,26+14*4-3,'2'); outtextxy(20*11-5,26+14*3+3,'q');

end;

procedure ris2_4; begin

setcolor(8); Line(20*17-8,26+14*1-3,20*17-8,26+14*6);

51

Line(20*17-7,26+14*1-3,20*17-7,26+14*5+2);

Line(20*17-9,26+14*1-3,20*17-9,26+14*5+2); Line(20*12+8,26+14*6,20*19,26+14*6); Line(20*11-4,26+14*3-8,20*11+7,26+14*3-1); Line(20*11,26+14*3-10,20*11+11,26+14*3-3); Line(20*17-12,26+14*3-4,20*17-3,26+14*3+4); Line(20*17-12,26+14*3-1,20*17-3,26+14*3+7); arc(20*12+8,26+14*6,0,90,12); putpixel(20*12+12,26+14*6-4,14); circle(20*12+12,26+14*6-4,1); Line(20*15-15,26+14*6-3,20*15,26+14*6); Line(20*15-15,26+14*6+3,20*15,26+14*6);

t_ka(20*17-8,26+14*5+2); {A__2} t_ka(20*17-8,26+14*1-3); {B__2} t_ka(20*17-8,26+14*6); {A__1} t_ka(20*12+8,26+14*6); {B_1} outtextxy(20*19-10,26+14*6-11,'S'); outtextxy(20*19,26+14*6-8,'1'); outtextxy(20*17,26+14*1-10,'='); outtextxy(20*17,26+14*1-3,'B'); outtextxy(20*17+8,26+14*1,'2'); outtextxy(20*17+8,26+14*5+3,'1'); outtextxy(20*17,26+14*5-7,'='); outtextxy(20*17,26+14*5,'A'); outtextxy(20*16,26+14*6+1,'= ='); outtextxy(20*16,26+14*6+8,'A = B '); outtextxy(20*16,26+14*6+11,' 1 1');

end;

procedure ris2_31; begin

setcolor(8); line(20*3,25+14*7,20*7-4,25+14*6+5); {A1B1} line(20*3,26+14*7,20*7-4,26+14*6+5); line(20*3,27+14*7,20*7-4,27+14*6+5); line(20*7-3,26+14*6+5,20*9-7,26+14*9); {B1C1} line(20*7-4,26+14*6+5,20*9-8,26+14*9); line(20*7-5,26+14*6+5,20*9-9,26+14*9); line(20*7-2,26+14*6+5,20*9-6,26+14*9); line(20*3,25+14*7,20*9-8,25+14*9); {A1C1} line(20*3,26+14*7,20*9-8,26+14*9); line(20*3,27+14*7,20*9-8,27+14*9); line(20*3,25+14*3+3,20*7-4,25+14*2-2); {A2B2} line(20*3,26+14*3+3,20*7-4,26+14*2-2); line(20*3,27+14*3+3,20*7-4,27+14*2-2);

line(20*7-3,26+14*2-2,20*9-7,26+14*4+6); {B2C2} line(20*7-4,26+14*2-2,20*9-8,26+14*4+6); line(20*7-5,26+14*2-2,20*9-9,26+14*4+6); line(20*7-2,26+14*2-2,20*9-6,26+14*4+6); line(20*3,25+14*3+3,20*9-8,25+14*4+6); {A2C2}

52

line(20*3,26+14*3+3,20*9-8,26+14*4+6); line(20*3,27+14*3+3,20*9-8,27+14*4+6);

line(20*3,26+14*7,20*3,26+14*3+3);

{A1A2}

line(20*7-4,26+14*6+5,20*7-4,26+14*2-2); {B1B2}

line(20*9-8,26+14*9,20*9-8,26+14*4+6); {C1C2}

t_ka(20*3,26+14*7); {A1}

t_ka(20*3,26+14*3+3); {A2}

t_ka(20*7-4,26+14*2-2); {B2}

t_ka(20*7-4,26+14*6+5); {B1}

t_ka(20*9-8,26+14*4+6); {C2}

t_ka(20*9-8,26+14*9); {C1}

outtextxy(20*6,26+14*1-1,'B');

 

outtextxy(20*6+10,26+14*1+2,'2');

outtextxy(20*2,26+14*3-1,'A');

outtextxy(20*2+10,26+14*3+2,'2');

outtextxy(20*2+10,26+14*7+3,'A');

outtextxy(20*3,26+14*7+6,'1');

outtextxy(20*6-1,26+14*5+5,'B');

outtextxy(20*6+7,26+14*5+8,'1');

outtextxy(20*9-1,26+14*4+2,'C');

outtextxy(20*9+9,26+14*4+5,'2');

outtextxy(20*9-5,26+14*9+4,'C');

outtextxy(20*9+5,26+14*9+7,'1');

end;

procedure ris2_32; begin

setcolor(8); line(20*12+4,26+14*5+3,20*13-1,26+14*1+1); {B_2A_2} line(20*12+5,26+14*5+3,20*13,26+14*1+1); line(20*12+6,26+14*5+3,20*13+1,26+14*1+1); line(20*13-1,26+14*1+1,20*15-2,26+14*7-5); {A_2C_2} line(20*13,26+14*1+1,20*15-1,26+14*7-5); line(20*13+1,26+14*1+1,20*15,26+14*7-5); line(20*15-1,25+14*7-5,20*12+5,25+14*5+3); {C_2B_2} line(20*15-1,26+14*7-5,20*12+5,26+14*5+3); line(20*15-1,27+14*7-5,20*12+5,27+14*5+3); line(20*12+4,26+14*6+5,20*15-2,26+14*9); {B_1C_1} line(20*12+5,26+14*6+5,20*15-1,26+14*9); line(20*12+6,26+14*6+5,20*15,26+14*9); line(20*12+7,26+14*6+5,20*15+1,26+14*9); line(20*2,26+14*9,20*15-1,26+14*9); line(20*2,26+14*6+5,20*12+5,26+14*6+5); line(20*2,26+14*7,20*13,26+14*7); line(20*10,26+14*9,20*10-10,26+14*9-3); line(20*10,26+14*9,20*10-10,26+14*9+3); line(20*10,26+14*7,20*10-10,26+14*7-3); line(20*10,26+14*7,20*10-10,26+14*7+3); line(20*10,26+14*6+5,20*10-10,26+14*6+2); line(20*10,26+14*6+5,20*10-10,26+14*6+8); line(20*12+5,26+14*6+5,20*12+5,26+14*5+3); {B_1B_2} line(20*15-1,26+14*9,20*15-1,26+14*7-5); {C_1C_2} line(20*13,26+14*7,20*13,26+14*1+1);

53

line(20*3,26+14*3+3,20*9,26+14*2+4); {f2} line(20*7+7,26+14*3-6,20*7+7,26+14*7); {1211} t_ka(20*7-4,26+14*6+5); {B1} t_ka(20*3,26+14*7); {A1} t_ka(20*12+5,26+14*5+3); {B_2} t_ka(20*13,26+14*1+1); {A_2} t_ka(20*15-1,26+14*7-5); {C_2} t_ka(20*13,26+14*7); {A_1} t_ka(20*15-1,26+14*9); {C_1} t_ka(20*12+5,26+14*6+5); {B_1} t_ka(20*9-8,26+14*9); {C1} t_ka(20*7+7,26+14*3-6); {12} t_ka(20*7+7,26+14*7); {11} t_ka(20*13,26+14*6-6); {1_2} t_ka(20*3,26+14*3+3); {A2}

outtextxy(20*12-2,26+14*1-4,'A'); outtextxy(20*12+6,26+14*1-1,'2'); outtextxy(20*12-2,26+14*1-13,'_');

outtextxy(20*13+2,26+14*4-4,'f'); outtextxy(20*13+10,26+14*4-1,'2'); outtextxy(20*13+2,26+14*4-13,'_');

outtextxy(20*13+2,26+14*6+3,'1'); outtextxy(20*13+10,26+14*6+6,'2'); outtextxy(20*13+2,26+14*6-6,'_');

outtextxy(20*11+2,26+14*5-7,'B'); outtextxy(20*11+10,26+14*5-4,'2'); outtextxy(20*11+2,26+14*5-16,'_');

outtextxy(20*11+2,26+14*6-7,'B'); outtextxy(20*11+10,26+14*6-4,'1'); outtextxy(20*11+2,26+14*6-16,'_');

outtextxy(20*11+2,26+14*8-8,'A =f'); outtextxy(20*11+10,26+14*8-5,'1 1'); outtextxy(20*11+2,26+14*8-17,'_ _');

outtextxy(20*9+2,26+14*2+1,'f'); outtextxy(20*9+10,26+14*2+4,'2'); outtextxy(20*7+2,26+14*2-6,'1'); outtextxy(20*7+10,26+14*2-3,'2'); outtextxy(20*7-8,26+14*8-10,'1'); outtextxy(20*7,26+14*8-7,'1'); outtextxy(20*9-6,26+14*8-10,'f'); outtextxy(20*9+2,26+14*8-7,'1'); outtextxy(20*15+3,26+14*7,'C'); outtextxy(20*15+11,26+14*7+3,'2'); outtextxy(20*15+3,26+14*7-9,'_');

outtextxy(20*15+5,26+14*9,'C'); outtextxy(20*15+13,26+14*9+3,'1'); outtextxy(20*15+5,26+14*9-9,'_');

outtextxy(20*1,26+14*9-4,'Г'); outtextxy(20*1+8,26+14*9-1,'1'); outtextxy(20*1,26+14*7-4,'Ф'); outtextxy(20*1+8,26+14*7-1,'1'); outtextxy(20*1,26+14*6-4,'W'); outtextxy(20*1+8,26+14*6-1,'1');

end;

procedure ris2_33; begin

setcolor(8);

line(20*18,26+14*5+3,20*19+1,26+14*1+1); {B__2A__2} line(20*18-1,26+14*5+3,20*19,26+14*1+1); line(20*18-2,26+14*5+3,20*19-1,26+14*1+1); line(20*19+1,26+14*1+1,20*22-4,26+14*7-5); {A__2C__2} line(20*19,26+14*1+1,20*22-5,26+14*7-5); line(20*19-1,26+14*1+1,20*22-6,26+14*7-5); line(20*22-5,25+14*7-5,20*18-1,25+14*5+3); {C__2B__2}

54

line(20*22-5,26+14*7-5,20*18-1,26+14*5+3); line(20*22-5,27+14*7-5,20*18-1,27+14*5+3); line(20*18-1,25+14*8,20*22-5,25+14*8); {B__1C__1} line(20*18-1,26+14*8,20*22-5,26+14*8); line(20*18-1,27+14*8,20*22-5,27+14*8); line(20*23-1,26+14*5+3,20*12+5,26+14*5+3); {B__2B_2} line(20*23,26+14*1+1,20*13,26+14*1+1); {A__2A_2} line(20*23,26+14*7-5,20*15-1,26+14*7-5); {C__2C_2} line(20*18-1,26+14*8,20*18-1,26+14*5+3); {B__1B__2} line(20*19,26+14*8,20*19,26+14*1+1); {A__1A__2} line(20*22-5,26+14*8,20*22-5,26+14*7-5); {C__1C__2} line(20*17,26+14*1+1,20*17-10,26+14*1-2); line(20*17,26+14*1+1,20*17-10,26+14*1+4); line(20*17,26+14*5+3,20*17-10,26+14*5); line(20*17,26+14*5+3,20*17-10,26+14*5+6); line(20*17,26+14*7-5,20*17-10,26+14*7-8); line(20*17,26+14*7-5,20*17-10,26+14*7-2); line(20*18-4,26+14*7+7,20*18-1,26+14*7); line(20*18+2,26+14*7+7,20*18-1,26+14*7); line(20*19-3,26+14*7+7,20*19,26+14*7); line(20*19+3,26+14*7+7,20*19,26+14*7); line(20*22-8,26+14*7+7,20*22-5,26+14*7); line(20*22-2,26+14*7+7,20*22-5,26+14*7); arc(20*18-1,26+14*8,0,90,12); circle(20*18+4,26+14*8-4,1); putpixel(20*18+4,26+14*8-4,14); line(20*13+12,26+14*7+4,20*13+5,26+14*8-4); line(20*20,26+14*8-4,20*20-5,26+14*8+4); t_ka(20*12+5,26+14*5+3); {B_2}

t_ka(20*18-1,26+14*8); {B__1} t_ka(20*18-1,26+14*5+3); {B__2} t_ka(20*19,26+14*8); {A__1} t_ka(20*19,26+14*1+1); {A__2} t_ka(20*22-5,26+14*8); {C__1} t_ka(20*22-5,26+14*7-5); {C__2} t_ka(20*13,26+14*1+1); {A_2} t_ka(20*15-1,26+14*7-5); {C_2} outtextxy(20*17+1,26+14*5-8,'B'); outtextxy(20*17+9,26+14*5-5,'2'); outtextxy(20*17+1,26+14*5-17,'_'); outtextxy(20*17+1,26+14*5-20,'_'); outtextxy(20*18+1,26+5,'A'); outtextxy(20*18+9,26+8,'2'); outtextxy(20*18+1,26-6,'_'); outtextxy(20*18+1,26-4,'_'); outtextxy(20*22-2,26+14*6-2,'C'); outtextxy(20*22+6,26+14*6+1,'2'); outtextxy(20*22-2,26+14*6-13,'_'); outtextxy(20*22-2,26+14*6-11,'_'); outtextxy(20*17+1,26+14*9-8,'B'); outtextxy(20*17+9,26+14*9-5,'1'); outtextxy(20*17+1,26+14*9-17,'_'); outtextxy(20*17+1,26+14*9-20,'_'); outtextxy(20*22+1,26+14*9-8,'C'); outtextxy(20*22+9,26+14*9-5,'1'); outtextxy(20*22+1,26+14*9-17,'_'); outtextxy(20*22+1,26+14*9-20,'_'); outtextxy(20*18+16,26+14*9-5,'A'); outtextxy(20*18+24,26+14*9-2,'1'); outtextxy(20*18+16,26+14*9-14,'_'); outtextxy(20*18+16,26+14*9-17,'_');

55

outtextxy(20*23+5,26+14*7-9,'Г'); outtextxy(20*23+13,26+14*7-6,'1'); outtextxy(20*23+5,26+14*5-1,'Ф'); outtextxy(20*23+13,26+14*5+2,'1'); outtextxy(20*23+5,26+14*6-5,'_'); outtextxy(20*23+5,26+14*4+3,'_'); outtextxy(20*23+5,26+14*1-4,'W'); outtextxy(20*23+13,26+14*1-1,'1'); outtextxy(20*23+5,26,'_');

end;

procedure ris2_34; begin

setcolor(8); arc(20*18-1,26+14*5+3,40,110,43); arc(20*19,26+14*1+1,220,288,43); line(20*17+1,26+14*3-4,20*21-3,26+14*4-2); arc(20*22-5,26+14*7-5,91,145,61); arc(20*19,26+14*1+1,273,326,61); line(20*19+4,26+14*5-6,20*22-7,26+14*3+1); line(20*20+11,26+14*4-3,20*20+11,26+14*8); line(20*14+2,26+14*4-3,20*14+2,26+14*8+3); line(20*14+2,26+14*4-3,20*20+11,26+14*4-3); line(20*6-4,26+14*8+3,20*14+2,26+14*8+3); line(20*6-4,26+14*4,20*6-4,26+14*8+3); line(20*16,26+14*4-3,20*16+10,26+14*4-6); line(20*16,26+14*4-3,20*16+10,26+14*4); line(20*10,26+14*8+3,20*10+10,26+14*8); line(20*10,26+14*8+3,20*10+10,26+14*8+6);

line(20*20+11-3,26+14*6-7,20*20+11,26+14*6); line(20*20+11+3,26+14*6-7,20*20+11,26+14*6); line(20*6-4-3,26+14*5+3,20*6-4,26+14*5-4); line(20*6-4+3,26+14*5+3,20*6-4,26+14*5-4); t_ka(20*14+2,26+14*8+3); {O_1} t_ka(20*6-4,26+14*8+3); {O1} t_ka(20*6-4,26+14*4); {O2} t_ka(20*14+2,26+14*4-3); {O_2} t_ka(20*20+11,26+14*4-3); {O__2} t_ka(20*20+11,26+14*8); {O__1} outtextxy(20*21+1,26+14*4+5,'O'); outtextxy(20*21+9,26+14*4+8,'2'); outtextxy(20*21+1,26+14*4-6,'_'); outtextxy(20*21+1,26+14*4-4,'_');

outtextxy(20*21-10,26+14*8+8,'O'); outtextxy(20*21-2,26+14*8+11,'1'); outtextxy(20*21-10,26+14*8-3,'_'); outtextxy(20*21-10,26+14*8-1,'_'); outtextxy(20*14+1,26+14*3,'O'); outtextxy(20*14+9,26+14*3+3,'2'); outtextxy(20*14+1,26+14*2+5,'_');

outtextxy(20*14+5,26+14*7+8,'O'); outtextxy(20*14+11,26+14*7+11,'1'); outtextxy(20*14+5,26+14*7-3,'_');

outtextxy(20*5,26+14*8+2,'O'); outtextxy(20*5+7,26+14*8+6,'1'); outtextxy(20*5-1,26+14*4+2,'O'); outtextxy(20*5+7,26+14*4+6,'2');

end;

56

procedure list21; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

setcolor(8);

nazv2;

setcolor(8);

niz;

outtextxy(10,50,' П л о с к о п а р а л л е л ь н ы м движением фигуры в пространстве назы-');

outtextxy(10,60,'вается такое ее перемещение, при котором все точки фигуры перемещаются в па-');

outtextxy(10,70,'раллельных плоскостях.');

outtextxy(10,90,' Теорема о плоскопараллельном перемещении относительно П

: при плоскопаралле-');

 

 

outtextxy(10,93,'

1

');

outtextxy(10,103,'льном движении фигуры относительно горизонтальной плоскости проекций фрон-');

outtextxy(10,113,'тальные проекции ее точек перемещаются по прямым, перпендикулярным линиям');

outtextxy(10,123,'связи, а горизонтальная проекция фигуры остается конгруэнтной самой себе. ');

outtextxy(10,143,' Теорема о плоскопараллельном перемещении относительно

П : при плоскопаралле-');

 

 

outtextxy(10,146,'

2

');

outtextxy(10,156,'льном движении фигуры относительно фронтальной плоскости проекций горизон-');

outtextxy(10,166,'тальные проекции ее точек перемещаются по прямым, перпендикулярным линиям');

outtextxy(10,176,'связи, а фронтальная проекция фигуры остается конгруэнтной самой себе. ');

ent(5);

if kod<>13 then exit;

s:=s+1;

end;

procedure list22; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

57

setcolor(8);

nazv2;

niz;

ris2_1;

outtextxy(10,160,'1. Преобразовать прямую общего положения в прмую уровня - фронталь. ');

outtextxy(395,170,' { нажмите клавишу <enter> } '); ent(5);

if kod<>13 then exit;

ris2_2;

outtextxy(10,190,' Выполним плоскопараллельное движение прямой AB

относительно горизонтальной');

 

 

outtextxy(10,192,'

__

 

');

outtextxy(10,201,'плоскости проекций. Так как прямая AB

должна быть

фронталью, то ее горизон-');

 

 

outtextxy(10,203,'

_ _

 

');

outtextxy(10,212,'тальную проекцию A B

расположим перпендикулярно

линиям связи. При этом сог-');

 

 

outtextxy(10,215,'

1 1

 

');

outtextxy(10,216,'

 

_ _

');

outtextxy(10,226,'ласно теореме горизонтальные проекции A B , A B отрезка

[AB] и его образа');

 

 

outtextxy(10,229,'

1 1 1 1

');

outtextxy(10,231,' __

');

 

outtextxy(10,240,'[AB] должны быть конгруэнтны.'); outtextxy(395,250,' { нажмите клавишу <enter> } '); ent(5);

if kod<>13 then exit;

ris2_3;

outtextxy(10,270,' Фронтальные проекции A , B точек A, B перемещаются

соответственно по пря-');

 

outtextxy(10,280,'мым Ф , W

- вырожденным проекциям горизонтальных

плоскостей уровня Ф, W, в');

 

outtextxy(10,283,' 2 2

');

outtextxy(10,293,'которых перемещаются точки A, B.');

outtextxy(10,303,' В результате выполненного плоскопараллельного движения

определим натуральную');

 

 

outtextxy(10,305,'

_ _

');

outtextxy(10,314,'величину отрезка AB(|AB| = A B ) и угол q

его наклона к

горизонтальной');

 

 

outtextxy(10,317,'

2 2

');

outtextxy(10,327,'плоскости проекций.'); 58

ent(5);

if kod<>13 then exit;

s:=s+1;

end;

procedure list23; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

setcolor(8);

nazv2;

niz;

ris2_1;

outtextxy(10,160,'2. Преобразовать прямую (AB) общего положения в горизонтальную проецирующую');

outtextxy(10,170,'прямую.');

outtextxy(395,170,' { нажмите клавишу <enter> } '); ent(5);

if kod<>13 then exit;

ris2_2; ris2_3;

outtextxy(10,190,' Задача решается композицией двух преобразований. Сначала плоскопараллельным');

outtextxy(10,200,'движением относительно П прямую AB преобразуем во

фронтальную прямую уровня');

 

outtextxy(10,203,'

1

');

outtextxy(10,205,'__

');

 

outtextxy(10,214,'AB (см. задачу 1).');

 

outtextxy(395,214,'

{ нажмите клавишу <enter> } ');

 

ent(5);

 

 

if kod<>13 then

 

 

exit;

 

 

ris2_4;

 

 

outtextxy(10,226,'

__

');

outtextxy(10,234,' Затем плоскопараллельным движением относительно П

прямую AB преобразуем в');

 

 

 

 

outtextxy(10,237,'

 

2

 

');

outtextxy(10,237,'

__

 

_ _

');

outtextxy(10,239,'

__

_ _

_ _

');

outtextxy(10,248,'горизонтально проецирующую прямую AB. При этом | A B | = | A B |, горизон-');

59

outtextxy(10,251,'

 

 

 

2 2

2 2

');

outtextxy(10,253,'

_

_

_ _

 

 

');

outtextxy(10,262,'тальные проекции A , B

точек A, B

перемещаются по

прямой S - вырожденной');

 

 

 

 

 

 

outtextxy(10,265,'

1

1

 

 

1

');

outtextxy(10,267,'

 

 

 

 

_ _

');

outtextxy(10,276,'проекции фронтальной плоскости уровня S, в которой перемещаются точки A, B. ');

ent(5);

if kod<>13 then exit;

s:=s+1;

end;

procedure list24; begin

setgraphmode(1);

setfillstyle(1,0);

bar(0,0,getmaxx,getmaxy);

setcolor(8);

nazv2;

niz;

ris2_31;

outtextxy(10,170,'3. Построить центр O окружности m, описанной около

треугольника ABC.

');

outtextxy(395,180,'

{ нажмите клавишу <enter> } ');

ent(5);

 

if kod<>13 then

 

exit; ris2_32;

outtextxy(10,200,' Для решения этой задачи необходимо плоскость ABC общего положения преобразо-');

outtextxy(10,210,'вать в плоскость уровня, построить здесь искомую точку и обратным преобразо-');

outtextxy(10,220,'ванием нацти ее проекции на исходном чертеже.'); outtextxy(10,230,' Одним плоскопараллельным движением плоскость общего положения нельзя преоб-');

outtextxy(10,240,'разовать в плоскость уровня. Поэтому выполним последовательно два плоскопарал-');

outtextxy(10,250,'лельных движения треугольника ABC: сначала относительно фронтальной плоскости');

outtextxy(10,260,'проекций, затем относительно плоскости П .'); 60

outtextxy(10,263,'

1 ');

 

outtextxy(10,266,'

_

');

outtextxy(10,275,' При первом плоскопараллельном движении u плоскость

треугольника ABC

преобра-');

 

outtextxy(10,276,'

_ _ _

');

outtextxy(10,285,'зуем в проецирующую плоскость. Для этого фронтальную

проекцию A B C

образа');

 

outtextxy(10,288,'

2 2 2

');

outtextxy(10,288,'

_ _ _

');

outtextxy(10,298,'расположим так, чтобы фронталь f(f , f ) стала горизонтально

проецирующей. При');

 

 

outtextxy(10,301,'

1 2

');

outtextxy(10,301,'

_ _ _

');

outtextxy(10,310,'этом |A B C | = |A B C |, а горизонтальные проекции A , B , C

вершин A, B, C');

 

 

 

 

 

 

outtextxy(10,313,'

2 2 2

2 2 2

1

1

1

');

outtextxy(10,322,'треугольника опишут соответственно прямые Ф , W , Г -

вырожденные проекции');

 

 

outtextxy(10,325,'

1 1 1

');

outtextxy(10,332,'фронтальных плоскостей уровня, проведенных через эти вершины.');

ent(5);

if kod<>13 then exit;

s:=s+1;

end;

 

 

procedure list25;

 

 

begin

 

 

setgraphmode(1);

 

 

setfillstyle(1,0);

 

 

bar(0,0,getmaxx,getmaxy);

 

 

setcolor(8);

 

 

nazv2;

 

 

niz;

 

 

ris2_31; ris2_32; ris2_33;

 

 

outtextxy(10,164,'

=

--- ');

outtextxy(10,170,' Вторым плоскопараллельным движением u относительно П

треугольник ABC пре-');

 

 

 

outtextxy(10,173,'

 

1

');

outtextxy(10,178,'

===

 

');

outtextxy(10,185,'образуем в треугольник ABC, расположенный во фронтальной плоскости уровня.');

61

outtextxy(10,193,'

- -

= =

 

');

outtextxy(10,200,'При этом отрезки B C , B C

конгруэнтны, и последний

располагаем перпенди-');

 

 

 

 

outtextxy(10,203,'

1 1

1 1

 

');

outtextxy(10,208,'

 

 

= = =

');

outtextxy(10,215,'кулярно линиям связи. Поэтому фронтальная проекция A B

C определяет нату-');

 

 

outtextxy(10,218,'

2 2 2

 

');

outtextxy(10,228,'ральные размеры треугольника ABC.');

 

 

outtextxy(395,238,'

{ нажмите клавишу <enter> } ');

 

 

ent(5);

 

 

 

if kod<>13 then

 

 

 

exit;

 

 

 

ris2_34;

 

 

 

outtextxy(10,252,'

=

=

');

outtextxy(10,259,' Известными построениями находим фронтальную

проекцию O центра O искомой');

 

 

outtextxy(10,261,'

2

');

outtextxy(10,266,'

=

');

outtextxy(10,273,'окружности, по линиям связи находим его горизонтальную

проекцию O . Обрат-');

 

 

 

 

 

outtextxy(10,276,'

 

 

 

1

');

outtextxy(10,281,'

=

-

 

 

');

outtextxy(10,285,'

-1

-1

 

 

');

outtextxy(10,289,'ными преобразованиями u

, u

находим проекции O , O

центра O описанной');

 

 

 

 

 

outtextxy(10,292,'

 

 

1

2

');

outtextxy(10,302,'вокруг треугольника ABC окружности.'); ent(5);

if kod<>13 then exit;

s:=s+1;

end;

 

 

procedure menu(var ukaz:integer);

 

var

 

 

s:array[1..4] of string;

 

begin

 

 

clrscr;

 

 

textcolor(5);

 

textbackground(7);

 

S[1]:='

Способ замены плоскостей. ';

S[2]:='Графическое решение основных задач.';

S[3]:='

ВЫХОД

';

62

 

 

for i:=1 to 3 do begin gotoXY(25,5+i); writeln(s[i]);

end;

ukaz:=1; repeat

gotoXY(25,5+ukaz);

textcolor(7);

textbackground(5); write (s[ukaz]); kod:=ord(readkey); gotoXY(25,5+ukaz); textcolor(5); textbackground(7); write(s[ukaz]);

case kod of 80:ukaz:=ukaz+1; 72:ukaz:=ukaz-1; 27:halt;

end;

if ukaz<1 then ukaz:=3; if ukaz>3 then ukaz:=1;

until kod=13; end;

BEGIN repeat

textbackground(0);clrscr; menu (ukaz); textbackground(0);

case ukaz of 1: begin s:=1; otkr_gr; repeat

case s of

1:list1;

2:list2;

3:list3;

4:list4;

5:list5;

6:list6;

7:list7;

end;

if kod=27 then

63

s:=8; until s=8; closegraph; end;

2: begin s:=1; otkr_gr; repeat

case s of

1:list21;

2:list22;

3:list23;

4:list24;

5:list25;

end;

if kod=27 then

s:=6; until s=6; closegraph; end;

end;

until ukaz=3; END.

64

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]