4790

Графика в системе программирования TP-6

Лекция

Информатика, кибернетика и программирование

Графика в системе программирования TP-6. Графический экран. Виды графических адаптеров. Графический модуль GRAPH. Задача построения графика функции. Работа с текстами и ввод-вывод в графическом экране. Рекурсивные описания в графике. Работа ...

Русский

2012-11-27

86 KB

3 чел.

Графика в системе программирования TP-6.

1.Графический экран. Виды графических адаптеров. Графический модуль GRAPH.

2.Задача построения графика функции. Работа с текстами и ввод-вывод в графическом экране.

3.Рекурсивные описания в графике.

4.Работа со страницами и фрагментами.

5.Задачи и упражнения.

Задачи вычислительной геометрии.

Отличительная особенность систем программирования, реализованных на персональных компьютерах - использование расширений языка средствами обработки графической информации. В системе программирования Turbo Pascal эти средства сосредоточены в модуле GRAPH.

Модуль (UNIT) - это совокупность (библиотека) описаний констант, типов данных, переменных, процедур и функций. Каждый модуль представляет собой по существу самостоятельную программу на Паскале: он может содержать несколько исполняемых операторов, вызываемых перед запуском программы, и осуществлять всю необходимую инициализацию. Средства, описанные в модуле, можно использовать в программе. Модуль можно компилировать отдельно.  Для того, чтобы включить модули в программу, необходимо описать их в специальном разделе описаний Uses. Синтаксическое описание этого раздела имеет вид:

Uses <список модулей>; {необязательный параметр}

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

1.Графический экран. Виды графических адаптеров.

Элементарной единицей информации, выводимой в графическом режиме на экран, является точка, окрашенная в некоторый цвет. Эта точка называется пикселом. Положение пиксела на экране определяется в декартовой системе координат (рис 1) Отметим непривычное направление оси OY: она направлена из левого верхнего угла экрана вниз.

        X

                 0

   Y

                

Таким образом, каждый пиксел описывается тремя параметрами:

( X, Y, C ) где C - цвет пиксела.

X - целое число из интервала [ 0 ... GetMaxX];

Y - целое число из интервала [ 0 ... GetMaxY];

C - целое число из интервала [ 0 ... GetMaxColors]

где GetMaxX,  GetMaxY,  GetMaxColors - констант, описанные в модуле GRAPH.

Диапазоны допустимых значений X, Y, C определяются техническими характеристиками аппаратуры компьютера, операционной системой и настройкой программы на один из возможных режимов использования модуля GRAPH - инициализацией графики. Подробные сведения об инициализации графики содержатся в документации системы программирования.

Система программирования Turbo-Pascal в MS-DOS поддерживает, в частности, следующие графические режимы:

Видеоадаптер

GetMaxX

GetMaxY

GetMaxColor

Драйвер

CGA

320

200

4 из 16

CGA.BGI

MCGA

320

200

16 из 256

CGA.BGI

EGA

640

200

16 из 256

EGAVGA.BGI

EGA

640

350

16 из 256

EGAVGA.BGI

VGA

640

480

16 из 256

EGAVGA.BGI

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

InitGraph( < гр.адаптер >, < режим гр.др >, < путь > );

Переход в текстовый режим осуществляется оператором CloseGraph.

Таким образом, программа, использующая графику, имеет вид:

Program MyGraph;

    Uses Graph;

     Var grDriver, grMode, errCode: Integer;

    ............

   Begin

     grDriver := Detect;

     InitGraph(grDriver, grMode, ‘<путь к драйверу >’); { пример пути: D:\PasSys6\BGI }

   .............

   End.

Константа Detect определена в модуле GRAPH. Ее значение равно 0. Detect указывает системе на необходимость подключения драйвера графики, соответствующего типу адаптера дисплея.

Графический модуль GRAPH содержит несколько десятков (более 50) процедур и функций, каждая из которых описана в документации системы и доступна программисту по команде HELP.

Поэтому мы приведем только некоторые сведения о GRAPH.

Константы:

процедуры Bar3D;

процедуры PutImage;

отсечения, цветов, стиля линий и ширины;

стиля текста;

графические драйверы и графические режимы драйверов;

шаблонов заполнения;

......................................................

Типы:

ArcCoordsType

FillPatternType

FillSettingsType

LineSettingsType

PaletteType

PointType

TextSettingsTtype

......................................................

Процедуры и функции:

Графические примитивы:

PutPixel, GetPixel, GetX, GetY,

Line, LineTo, Move, Bar, DrawPoly, Rectangle, ...

Arc, Circle, Ellipse, ...

Обработка цветов:

GetColor; GetPixel, GetBkColor, ...

SetColor, SetBkColor, SetPalette,...

Установка стиля рисования:  SetLineStyle, SetFillStile, ...

Обработка текста:  OutText, OutTextXY, TextWidth, SetTextStyle, ...

Обработка графического экрана:  SetActivePage, PutImage, GetImage, SetViewPort,...

Процедура PutPixel(X, Y, C), например, окрашивает точку (X,Y) экрана в цвет C. Одновременно графический курсор помещается в эту точку.

Процедура Line(X1,Y1, X2,Y2, C) рисует отрезок AB цветом C.  A = (X1, Y1), B = (X2, Y2). В модуле описаны несколько процедур рисования отрезка. Они применяются в специальных случаях.

2.Задача построения графика функции.

В качестве примера применения графических средств рассмотрим задачу построения графика функции y = f(x). Построение графика функции предполагает как минимум:

Построение окна с оформленной системой координат;

Построение кривой y = f(x) в окне;

Оформление необходимых надписей.

а) Оформление системы координат.

Окно системы координат определяется параметрами:

(Un, Vn) - координаты левого верхнего угла окна;

(Uk, Vk) - координаты правого нижнего угла окна;

(Uо, Vo) - координаты начала координат;

Mx, My - масштабы системы координат по x и y.  

Все значения параметров должны быть определены в компьютерной системе координат (в координатах пикселов). При этом (Un, Vn), (Uk, Vk) - константы (неподвижное окно), а (Uо, Vo), M вычисляются, исходя из данных, вводимых пользователем.  На практике пользователь чаще всего указывает границы изменения переменных x, y - (Xn, Xk), (Yn, Yk). Значения M, Uo, Vo небходимо вычислить перед построением системы координат.

Для простоты мы будем предполагать, что Xn<0<Xk, Yn<0<Yk.  Тогда начало системы координат попадет в окно графика. В противном случае нужно программировать несколько специальных вариантов размещения осей координат.

Mx = [(Uk - Un)/(Xk - Xn)],

My = [(Vk - Vn)/(Yk - Yn)],

Uo = Uk - [Mx*Xk], Vo = Vn + [My*Yk];

Используя эти формулы, напишем требуемую процедуру:

Procedure WinGraf(Xn, Xk, Yn, Yk: Real;

      Var Mx, My, Uo, Vo : Integer);

    Begin

     { вычисление параметров }

     Mx := Round((Uk - Un)/(Xk - Xn));    My := Round((Vk - Vn)/(Yk - Yn));

     Uo := Uk - Round(Mx*Xk);                Vo := Vn + Round(My*Yk);

     { рисование системы координат }

      SetColor(LightGray);

      Bar(Un, Vn, Uk, Vk); { окно графика }

      SetColor(Green); { рисуем зеленым цветом }

      SetLineStyle(0, 0, ThickWidth);    {Рисуем толстые сплошные оси}

      Line(Un, Vo, Uk, Vo); { ось OX }

      Line(Uo, Vn, Uo, Vk); { ось OY }

      SetColor(Red);

      Circle(Uo, Vo, 2); {начало координат - небольшой круг}

      SetLineStyle(0, 0, 1); {Рисуем тонкие сплошные отметок 1 }

      Line(Uo+Mx, Vo-4, Uo+Mx, Vo+4); { отметка 1 на OX }

      Line(Uo-4, Vo-My, Uo+4, Vo-My); { отметка 1 на OY }

      SetTextStyle(0, 0, 2);

      OutTextXY(Uo + Mx - 7, Vo + 16, ‘1’); { рисуем 1 }

      OutTextXY(Uo - 24, Vo - My - 7 , ‘1’); { рисуем 1 }

      OutTextXY(Uo - 24, Vo + 16, ‘0’); { рисуем 0 }

       { Дальнейшие украшения окна графика }

     End;

б) Построение кривой y = f(x) в окне;

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

На построение графика тратится большая часть времени. Поэтому целесообразно аппроксимировать дугу кривой y = f(x) хордой, выбирая узлы аппроксимации с некоторым шагом DrawStep (например, DrawStep = 10 (пикселов)).

Таким образом, процедура рисования графика имеет вид:

Procedure FuncDraw;

    Const DrawStep = 10;

       Var i: Integer;

            x, y: Real;

            u, v: Integer;

            ArgStep: Real;

            StepNum: Integer;

      Begin

        SetColor(Blue); {цвет кривой}

        SetLineStyle(0, 0, NormWidth); {толщина нормальная}

        ArgStep := DrawStep / Mx; {шаг изменения x}

        StepNum := Round((Uk - Un) / DrawStep); {количество узлов}

        { вычисления начальной точки графика }

        x := Xn ; u := Un;

        y := sqrt(Abs(x))*sin(2*x);  v := Round(Vo - My*y);

         MoveTo(u, v);

         { цикл рисования аппроксимирующей ломаной }

         For i := 1 to StepNum do begin

            x := x + ArgStep; u := u + DrawStep;

            y := sqrt(Abs(x))*sin(2*x); v := Round(Vo - My*y);

            LineTo(u,v);

         end

      End;

Рaбота с текстами и ввод-вывод в графическом экране.

Ввод/вывод информации в режиме графики существенно отличается от соответствующих процедур в алфавитно-цифровом режиме. Вывод текста на экран осуществляют процедуры OutText, OutTextXY.

OutText(TxtStr: String) выводит строку на устройство вывода (графический экран) в точку - позицию графического курсора.  OutTextXY(X, Y: Integer; TxtStr: String) выводит строку на устройство вывода (графический экран) в точку (X, Y).

Кроме этих процедур, в модуле GRAPH описаны процедуры и функции, поддерживающие различные стили вывода. Так, например:

Функции TextHeight(TxtStr:String), TextWidth(TxtStr:String) возвращают соответственно высоту и ширину строки в пикселах.  

Процедура SetTextStyle(Font, Direction:Word; CharSize:Word) устанавливает стиль вывода текста в графическом режиме, т.е. определяет шрифт, стиль текста и коэффициент увеличения символа. В качестве примера опишем процедуру WinText вывода комментирующих надписей в окно графика функции.

Procedure WinText;

    Begin

      SetColor(LightMagenta);

      SetTextStyle(0, 1, 1);

      OutTextXY(15,15, ‘Function Graphics Window’);

      SetColor(Cyan);

      SetTextStyle(0, 0, 1);

      OutTextXY(460,15, ‘Production of SL.XXI’);

      SetTextStyle(0, 0, 2);

      OutTextXY(28, 390, ‘Y = Sqrt(Sin(|x|)’);

     End;

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

Для ввода символа используется функция ReadKey - чтение символа с клавиатуры. Для отображения введенного символа на экране (эхо) используется одна из графических процедур вывода. Суперпозиция этих действий имеет вид Symbol := ReadKey; OutTextXY(x0, y0, Symbol) Для более полной имитации процедуры Read точка ввода информации на экране обычно отмечается изображением курсора, который сдвигается на одну позицию вправо при каждом вводе символа.

Procedure ReadGrStr(x, y: Integer; var Str: String);

    Const CursW = 8; CursH = 6; {ширина и высота курсора}

      Var Symbol: Char; x1, y1: Integer;

    Begin

      x1 := x + CursW; y1 := y + CursH;

      SetColor(Green); {цвет курсора }

      Rectangle(x, y, x1, y1);

      Str := ‘’; Symbol := ReadKey; {инициализация }

      While Ord(Symbol) <> 13 do begin

      SetColor(LightGray); {Цвет окна графика}

      Bar(x, y, x1, y1); {Удалить курсор}

      OutTextXY(x, y, Symbol); {Вывести символ}

       x := x + CursW; x1 := x + CursW;

       Str:= Str + Symbol; {Формирование выходной строки}

       SetColor(Green); {Вывести курсор}

       Rectangle(x, y, x1, y1);

       Symbol := ReadKey {Считать символ}

      end

    End;

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

Числа вводятся как строки, а затем пребразуются системной процедурой Val. Переменная Code содержит номер ошибки формата.  Val(Str: String; var v {компонент Text}; var Code: Integer);

Переменная Code содержит номер ошибки формата. С ее помощью можно контролировать правильность числового формата введенной строки.

4.Рекурсивные описания в графике.

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

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

Квадрат Кантора - это фигура, которая получена путем вырезания некоторых участков из первоначально сплошного квадрата.  Для того, чтобы построить квадрат Кантора, необходимо:

  1.  Разбить сплошной (окрашенный в один цвет) квадрат на 9 равных квадратов вертикальными и горизонтальными линиями (3 на 3);
  2.  Вырезать (закрасить в другой цвет) средний из 9-ти маленьких квадратов.
  3.  Применить (рекурсивно) действия 1, 2, 3 к 8-ми оставшимся маленьким сплошным квадратам.

Program KantorSet;

    Uses Graph, Crt;

   Const Xmin = 0; Ymin = 0; { размеры квадрата }

           Xmax = 486; Ymax = 486;

           N = 6; { глубина рекурсии }

     Var grDriver, GrMode: Integer; ch: Char;

Procedure Picture(k: Integer; x0, y0, x3, y3: Integer);

       Var x, y, dx, dy: Integer; i, j: Integer;

    Begin

      If k <> N

        then begin

          dx := (x3-x0) div 3; dy := (y3-y0) div 3;

          x := x0;

         For i := 0 to 2 do begin

         y := y0;

         For j := 0 to 2 do begin

           If (i = 1) and (j = 1)

             then Bar(x, y, x+dx, y+dy) {вырезаем квадрат}

             else Picture(k+1, x, y, x+dx, y+dy);

            y := y + dy  end;

         x := x + dx  end;

        k := k + 1

      end

End;

    Begin

      grDriver := Detect;

      InitGraph(grDriver, grMode, ‘E:\lvov\pascal\bgi’);

       SetBkColor(Blue);

       Picture(1, Xmin, Ymin, Xmax, Ymax);

       ch := ReadKey

     End.

Аналогично можно строить и другие симпатичные мозаики.

Работа со страницами и фрагментами.

Графическое изображение, выводимое на экран, хранится в специальной области оперативной памяти компьютера, называемой видеопамятью. Размер памяти, отводимой под изображение одного графического экрана, зависит от графического режима. Эта часть памяти называется страницей видеопамяти (видеостраницей). Так, в режиме EGA (640 * 350, 16 цветов) страница видеопамяти занимает примерно 110 Kb. В этом режиме, если видеопамять имеет 256 Kb, определены две страницы - с номерами 0 и 1.

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

Наиболее употребительные средства, поддерживающие работу со страницами и их фрагментами, кратко описаны ниже:

SetVisualPage(Page:Word)- визуализирует страницу с номером Page;

SetActivePage(Page: Word) - активизирует страницу с номером Page;

GetMem(P, Size) - резервирует память размера Size и устанавливает на нее указатель P; {Понятие указателя рассматривается в главе 12}

ImageSize(x1, y1, x2, y2: Integer):Word - возвращает размер видеопамяти прямоугольной области экрана;

GetImage(x1, y1, x2, y2:Integer; var BitMap) - сохраняет образ указанной области в буфере;

PutImage(x, y: Integer; var BitMap; BitBit: Word) - помещает (двоичный) образ из буфера на экран. Параметр BitBit определяет способ наложения образа на активную страницу;

Program ImageExample;

    Uses Graph, Crt;

     Var grDriver, GrMode: Integer;

          Ch :Char;

           P :Pointer; {указатель на образ в памяти}

           Size :Word; {размер образа}

   Begin

     grDriver := Detect;

      InitGraph(grDriver, grMode, ‘E:\lvov\pascal\bgi’);

      SetGraphMode(1); { Размер экрана = 640 * 350 }

      {Пример для SetVisualPage, SetActivePage}

      SetBkColor(Blue);

      SetActivePage(0); {Рисуем на странице 0} {На экране страница 0}

      Rectangle(40, 40, 140, 140);  OutTextXY(50, 90, ‘First Page’);

      Ch := ReadKey;  SetActivePage(1); { Рисуем на странице 1. На экране страница 0}

      SetColor(Magenta);

      Circle(90, 90, 50);

      OutTextXY(45, 90, ‘Second Page’);

      SetVisualPage(1); {Выводим на экран стр 1}

      Ch := ReadKey;    SetVisualPage(0); {Выводим на экран стр 0}

      Ch := ReadKey;    SetVisualPage(1); {Выводим на экран стр 1}

      Ch := ReadKey;

       {Пример для GetImage, ImageSize, и PutImage}

       Size := ImageSize(40, 40, 140, 140); {Установили размер рисунка}

       GetMem(P, Size); {Резервируем память, на которую установлен указатель P }

       SetActivePage(0);

       GetImage(40, 40, 140, 140, P^); {Пересылаем рисунок в область памяти - значение  P}

       Ch := ReadKey;

       SetActivePage(1); {Рисуем на странице 1}

       PutImage(400, 200, P^, NormalPut); {Выводим на стр.1 рисунок}

       Ch := ReadKey;

       ClearDevice;

       CloseGraph;

     end.

5.Задачи и упражнeния

1.Описать процедуру оформления системы координат, в которой точка начала координат (Uo,Vo) может выходить за пределы окна графика. Оси координат в этом случае должны совпадать с соответствующими границами окна графика.

2.Усовершенствовать процедуру FuncDraw вывода графика функции y = f(x) обработкой случаев, когда кривая выходит за пределы окна системы координат.

3.Изменить процедуру FuncDraw для вывода на экран графика функции, заданной параметрически: x = fi(t), y = psi(t), A <= t <= B.

4.Написать программу построения графика функции в полярной системе координат.

5.Реализовать процедуры линейных геометрических преобразований (перенос, поворот, осевая и центральная симметрии, гомотетия).

6.Используя процедуры упр.5, написать программу, демонстрирующую геометрические преобразования плоских геометрических фигур (в частности - треугольника).

7.Усовершенствовать процедуру ReadGrStr, превратив ее в редактор строки с действиями Insert, Delete, BackSpace c помощью соответствующих клавиш.

8.Изменить процедуру ReadGrStr, превратив ее в редактор вещественного числа.

9.Изменить процедуру ReadGrStr, превратив ее в редактор целого числа.

10.Написать программу изображения мозаики, которая определена правилами:

а. В центре квадрата размера A*A рисуется окружность радиуса A/2;

б.Квадрат разбивается на 4 равных (под)квадрата горизонтальной и вертикальной линиями.

в. Действия 1 - 3 применяются рекурсивно к каждому из 4-х квадратов.

Задачи вычислительной геометрии

11.Дан набор  из  n  точек плоскости,  заданных координатами  A1(X1, Y1), A2(X2, Y2) , ..., An(Xn, Yn). Найти такую точку S(X, Y) на плоскости, сумма расстояний от которой до данных точек набора наименьшая. Проиллюстрировать решение на картинке.

12.Дан  набор  из  n точек плоскости, заданных  координатами: A1(X1, Y1),  A2(X2, Y2), ...,  An(Xn, Yn). Выбрать из этого набора точки, находящиеся в вершинах выпуклого многоугольника наименьшей площади и содержащего все точки набора. Проиллюстрировать решение на картинке.

13.Дан набор  из  n точек  плоскости, заданных координатами: A1(X1, Y1),  A2(X2, Y2), ...,  An(Xn, Yn) Построить круг наименьшего диаметра, содержащий все точки набора. Проиллюстрировать решение на картинке.

14.Дан набор из  n  точек  плоскости, заданных координатами: A1(X1, Y1),  A2(X2, Y2), ...,  An(Xn, Yn). Построить прямоугольник наименьшей площади, содержащий все точки набора. Проиллюстрировать решение на картинке.

15.Выпуклый n-угольник задан набором вершин A1(X1, Y1),  A2(X2, Y2), ...,  An(Xn, Yn)

Разбиение этого многоугольника на треугольники непересекающимися диагоналями называется триангуляцией. Стоимостью триангуляции называется сумма длин диагоналей разбиения. Найти триангуляцию многоугольника наименьшей стоимости. Проиллюстрировать решение на картинке.


 

А также другие работы, которые могут Вас заинтересовать

20036. Советское общество в 1920-е года 10.88 KB
  Началось антибольшевистское движение: крестьяне выступали в Тамбовской и Воронежской губерниях рабочие в Москве и Петрограде матросы в Кронштадте НЭП экономическая политика проводившаяся в Советской России и СССР в 1920е годы Март 1921г. была провозглашена НЭП 1. Привлекался иностранный капитал Концессии для участия в российской промышленности Итог НЭПа: экономика страны достигла довоенного уровня. К концу 20х годов НЭП был свернут.
20037. Сталинская модернизация 15.15 KB
  Ее главными мероприятиями стали индустриализация коллективизация. Коллективизация Официально коллективизация началась 7 ноября 1929 г. Сталину становится ясно что коллективизация может привести к серьезному экономическому и политическому кризису . сплошная коллективизация возобновилась.
20038. Дайте оценку Мюнхенскому договору и его последствиям 7.29 KB
  23 августа 1939 Пакт о ненападении Германии и СССР. Получившее название МолотоваРиббентропа к пакту прилагаются секретные материалы и карта Европы распределяющая влияние СССР и Германии на страны Европы. СССР заявил о своей готовности помочь Чехословакии в случае начала войны. Руководители Англии и Франции боялись что Гитлер развяжет войну в Европе что приведет к резкому усилению влияния СССР.
20039. Рычажные механизмы. Классификация. Конструкции. Регулировка длин рычагов 852 KB
  Регулировка длин рычагов. Рычажные механизмы состоят из рычагов стержней ползунов соединенных в кинематические пары. Подвижные звенья конструктивно могут быть выполнены в виде рычагов пранок пластин пружин стержней соединяемых между собой высшими нисшими кинематическими парами. Стержневые чаще всего имеют круглое сечение пластинчатые прямоугольное сечение объемных или профильных рычагов может быть любое.
20040. Фрикционные механизмы. Классификация.Расчет 33.5 KB
  К ним относятся фрикционные передачи фрикционные муфты тормозные регуляторы тормоза фиксаторы замедлители и т. В зависимости от расположения осей различают передачи с параллельными и пересекающимися осями. Передачи со скрещивающимися осями используются крайне редко в связи с повышенным износом. По взаимному расположению поверхностей трения существуют передачи с внешним и внутренним контактом.
20041. Опоры вращения с трением качения. Опоры с малым моментом трения 1.29 MB
  Опоры с малым моментом трения. Опоры на ножах Опора состоит из ножа 1 контактирующего с подшипником подушкой 2. В любом варианте опоры этого типа представляют собой контакт двух цилиндрических поверхностей максимальный угол поворота 10 момент трения минимальный. Опоры на кернах Опора на керне состоит из цапфы конической формы на конце которой выполнена сферическая полированная поверхность радиусом 01 015 мм и подшипника с вогнутой сферической поверхностью с радиусом =4 12 .
20042. Направляющие прямолинейного движения с трением скольжения 1.8 MB
  Для обеспечения поступательного движения одной детали относительно другой применяют направляющие. Требования к направляющим: надёжность технологичность невысокая стоимость Направляющие с трением скольжения просты в изготовлении имеют небольшие габаритные размеры но чувствительны к изменению температуры и уступают направляющим с трением качения в плавности и лёгкости хода. По конструктивному признаку различают: цилиндрические призматические направляющие. Цилиндрические направляющие наиболее просты в изготовлении но в них трудно...
20043. Направляющие прямолинейного движения с трением качения 1.21 MB
  По форме используемых тел качения различают направляющие на шариках и на роликах. При этом в качестве роликов могут быть использованы стандартные подшипники качения. В зависимости от способа установки различают направляющие с перекатывающимися и вращающимися вокруг своей оси телами качения.
20044. Конструирование механически обрабатываемых деталей 85.5 KB
  Рекомендуется уменьшать количество металла, снимаемого при обработке (в первую очередь это касается отливок); По возможности рекомендуется отказываться от обработки деталей со снятием стружки, переходить на штамповку, вытяжку, гибку;