Инфоурок Информатика КонспектыПостроение многоугольников и примитивных объемных фигур в полярной системе координат

Построение многоугольников и примитивных объемных фигур в полярной системе координат

Скачать материал

Построение многоугольников и примитивных объемных фигур в полярной системе координат            

 

  1. Урок 1. Построение правильных выпуклых многоугольников.
  2. Урок 2. Построение правильных самопересекающихся многоугольников.
  3. Урок 3. Построение примитивных объемных фигур.

 

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

 

Урок 1. Построение правильных выпуклых многоугольников

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

 

Program V2L07P1; {Построение многоугольников в полярных координатах}

Uses Crt,Graph;

Var Gd,Gm,x,y,r,n,kk,ks:integer; i,rn,krk,krs:real;

{}

Procedure PoleGr;        {Процедура формирования поля графика}

begin

 SetFillStyle(1,15);     {Стиль и цвет заполнения закрашенного прямоугольника}

 Bar(220,140,420,340);   {Построение закрашенного прямоугольника}

 SetViewPort(220,140,420,340,False);

 SetColor(7);            {Установка цвета линий сетки}

      {Цикл построения вертикальных линий сетки}

 x:=0;                   {Начальное значение переменной шага сетки}

 while x<=200 do

 begin

   Line(x,0,x,200);     {Построение линии сетки}

   x:=x+10              {Расчет шага сетки}

 end;

      {Горизонтальные линии сетки}

 y:=0;

 while y<=200 do

 begin

   Line(0,y,200,y);

   y:=y+10

 end;

{}

 SetColor(0);            {Цвет линий осей координат}

 Line(0,100,200,100);    {Ось абсцисс}

 Line(100,0,100,200);    {Ось ординат}

end;

{}

Procedure Dizine;        {Процедура формирования дизайна графика}

begin

 OutTextXY( 87, 106, '0');

 SetColor(15);           {Установка цвета следующих строк}

 OutTextXY(106,- 10, 'Y');

 OutTextXY(206, 90, 'X');

 OutTextXY(205, 106,'100');

 OutTextXY(-27,   0,'100');

 OutTextXY(-37, 194,'-100');

 OutTextXY(-37, 106,'-100');

end;

{}

begin

 ClrScr;

{}

 Write('Введи радиус окружности '); Read(r);

 Write('Введи  количество сторон  многоугольника '); Read(n);

 Write('Введи коэффициент при  радиусе  косинуса '); Read(krk);

 Write('Введи коэффициент  при   радиусе  синуса '); Read(krs);

 Write('Введи коэффициент при аргументе косинуса '); Read(kk);

 Write('Введи коэффициент при  аргументе  синуса '); Read(ks);

       {Установка графического режима}

 Gd:=Detect;

 InitGraph(Gd,Gm,'c:\bp\bgi');

 if GraphResult<>0 then Halt(1);

{}

  PoleGr;                  {Вызов процедуры формирования поля графика}

{}

 i:=-180;                  {Начальное значение аргумента функции}

 rn:=i*Pi/180;

 x:=100+Round(r*Cos(rn));  {Вычисление значения функции x}

 y:=100-Round(r*Sin(rn));  {Вычисление значения функции y}

 MoveTo(x,y);  {Перемещение графического курсора в указанную коорд. точку}

{}

 while i<=200 do           {Цикл вычисления функции}

 begin

     rn:=i*Pi/180;         {Пересчет градусной меры угла в радианную}

     x:=100+Round(krk*r*Cos(kk*rn));   {Вычисление значения координаты x}

     y:=100-Round(krs*r*Sin(ks*rn));   {Вычисление значения координаты y}

     LineTo(x,y);                      {Построение отрезков кривой графика}

     i:=i+360/n                        {Увеличение аргумента функции}

 end;

{}

  Dizine;                  {Вызов процедуры формирования дизайна графика}

{}

 ReadKey;

 CloseGraph;

end.

 

 

 

 

 

 

 

 

 

 

 

 

 


  Рис. 77.  Правильный треугольник:      Рис. 78.  Правильный пятиугольник:     Рис. 79.  Правильный десятиугольник:

               r = 80, n = 3, krk = 1, krs = 1,                    r = 80, n = 5, krk = 1, krs = 1,                     r = 80, n = 10, krk = 1, krs = 1,

kk = 1, ks = 1.                                              kk = 1, ks = 1.                                               kk = 1, ks = 1.

 

Урок 2. Построение правильных самопересекающихся многоугольников

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

 

 

 

 

 

 

 

 

 

 

 

 


 

 Рис. 80.  Звездчатый пятиугольник,        Рис. 81.  Звездчатый десятиугольник,      Рис. 82.  Звездчатый десятиугольник,

                  вписанный в  окружность:                     вписанный    в   окружность:                 вписанный в фигуру  Лиссажу:

                r = 80, n = 5, krk = 1, krs = 1,                     r = 80, n = 10, krk = 1, krs = 1,                 r = 30, n = 10, krk = 3, krs = 2,

                              kk = 2, ks = 3.                                              kk = 3, ks = 7.                                                 kk = 3, ks = 2.              

Урок 3. Построение примитивных объемных фигур

Задача получения объемного изображения на плоскости – перспектива, была решена художниками эпохи Возрождения: Филиппо Брунелевски (1377 - 1446), Леоном Батисто Альберти (1404 - 1472), Пьетро делла Франческа (1420  - 1492) и др.. Особое место среди них занимает Леонардо да Винчи (1452 - 1519), который сформулировал правила создания имитации пространства.  По мере “удаления” от зрителя изображаемых на картине предметов с ними должно происходить:

-         уменьшение геометрических размеров  (линейная перспектива);

-         изменение четкости изображения  (контрастно – яркостная перспектива);

-         изменение цвета изображения на более светлый цвет  (цветовая  или воздушная перспектива).

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

                Система координат трехмерного изображения состоит из трех координат:  X – абсцисса,  Y – ордината  и  Z – аппликата (см. рис. 80).

                                               Z                                                                                                      Z

 

 


                                                                          X

 

 

                            Y                                                                                                      X                                           Y

 

                                               a)                                                                                                          b)

 

 

Рис. 83. Аксонометрические проекции: a) диметрическая проекция (углы между осями  X, Y = 135 и X, Z  =  90 градусов),  b)  изометрическая  проекция (углы между осями  X, Y, Z = 120  градусов).

 

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

Алгоритм построения на экране дисплея примитивных объемных фигур: цилиндр, конус, усеченный конус, куб, параллелограмм, призма, пирамида, весьма прост. Для этого достаточно строить изображения окружности, куба, параллелепипеда, изменяя с каждой итерацией, координаты центра  окружности, радиуса окружности и линейных размеров сторон параллелепипеда  или куба. При этом будем получать “прозрачные” объемные фигуры.

 

Program V2L07P2; {Изображение ”прозрачного” цилиндра}

Uses Crt, Graph;                    {Вызов библиотечных модулей}

Var Gd, Gm,f :integer;              {Определение целых переменных}

x,y,r,c,i,t,xz,yz,st,cz :word;      {Определение целых переменных}

{}

begin

 ClrScr;                            {Стирание экрана}

 Write('Введи через пробел координаты X, Y центра окружности:      ');

 Read(x,y);

 Write('Введи радиус окружности:                                   ');Read(r);

 Write('Введи код 0 -:-15 цвета линии окружности:                  ');Read(c);

 Write('Введи код 3 толстой линии или любой другой - тонкая линия: ');Read(t);

 Write('Введи через пробел координаты X, Y точки  заполнения:      ');Read(xz,yz);

 Write('Введи 0 -:- 11 - код заполнения поверхности окружности:    ');Read(st);

 Write('Введи код 0 -:-15 цвета заполнения поверхности окружности: ');Read(cz);

{}

 Gd:=0;Gm:=0;                       {Значения графического драйвера и модуля}

 InitGraph(Gd,Gm,'c:\bp\bgi');      {Установка графического режима}

 if GraphResult<>0 then Halt(1);    {Проверка на ошибку инициализации}

 SetLineStyle(0,0,t);               {Установка толщины линии окружности}

 i:=0;                              {Начальное значение переменной цикла}

 f:=0;                              {Начальное значение флага}

 while i<50 do                      {Цикл построения окружностей}

 begin

   SetColor(c);                     {Установка цвета линии окружности}

    Circle(x-i,y+i,r);              {Построение окружности}

    if f=0 then

 begin

   SetFillStyle(st,cz);          {Установка координат точки начала и цвета заполнения}

   FloodFill(xz-i,yz+i,c);       {Установка координат точки начала и цвета заполнения}

   f:=1;                         {Установка флага}

   end;

   i:=i+5;                       {Шаг изменения координат центра окружностей}

 end;

{}

 ReadKey;  {Задержка выполнения программы до нажатия любой клавиши клавиатуры}

 CloseGraph                      {Закрытие графического режима}

end.

 


                Возможный результат работы программы

Введи через пробел координаты X, Y центра окружности:      320 240

Введи радиус окружности:                                   50

Введи код 0 -:-15 цвета линии окружности:                  15

Введи код 3 толстой линии или любой другой - тонкая линия: 1

Введи через пробел координаты X, Y точки  заполнения:      320 240

Введи 0 -:- 11 - код заполнения поверхности окружности:    1

Введи код 0 -:-15 цвета заполнения поверхности окружности: 5

 

                                                                                                                               Рис. 84.  Изображение “прозрачного” цилиндра.

 

Для изображения “непрозрачного” цилиндра необходимо удалять части линий окружностей, которые не должны быть видны на изображении. Для этого сначала строится окружность одним (дополнительным) цветом её линии и заливается выбранным цветом, затем строится окружность другим (основным) цветом и заливается выбранным цветом. Это делается для того, чтобы заливка продолжалась до линии окружности основного цвета. Процесс повторяется необходимое количество раз.

 

Program V2L07P3; {Изображение ”непрозрачного” цилиндра}

Uses Crt, Graph;                      {Вызов библиотечных модулей}

Var Gd, Gm :integer;                  {Определение целых переменных}

x,y,r,c,i,t,xz,yz,st,cz :word;        {Определение целых переменных}

{}

begin

 ClrScr;                               {Стирание экрана}

 Write('Введи через пробел координаты X, Y центра окружности:      ');

 Read(x,y);

 Write('Введи радиус окружности:                                   ');Read(r);

 Write('Введи код 0 -:-15 цвета линии окружности:                  ');Read(c);

 Write('Введи код 3 толстой линии или любой другой - тонкая линия: ');Read(t);

 Write('Введи через пробел координаты X, Y точки  заполнения:      ');Read(xz,yz);

 Write('Введи 0 -:- 11 - код заполнения поверхности окружности:    ');Read(st);

 Write('Введи код 0 -:-15 цвета заполнения поверхности окружности: ');Read(cz);

{}

 Gd:=0;Gm:=0;                        {Значения графического драйвера и модуля}

 InitGraph(Gd,Gm,'c:\bp\bgi');       {Установка графического режима}

 if GraphResult<>0 then Halt(1);     {Проверка на ошибку инициализации}

 SetLineStyle(0,0,t);

 i:=0;                               {Начальное значение переменной цикла}

 while i<50 do                       {Цикл построения окружностей}

 begin

   SetColor(c-1);                    {Установка цвета линии окружности}

   Circle(x-i,y+i,r);                {Построение окружности}

   SetFillStyle(st,cz); {Установка стиля и цвета заполнения поверхности окружности}

   FloodFill(xz-i,yz+i,c-1); {Установка координат точки начала и цвета заполнения}

{}

   SetColor(c);                      {Установка цвета линии окружности}

   Circle(x-i,y+i,r);                {Построение окружности}

   SetFillStyle(st,cz);      {Установка координат точки начала и цвета заполнения}

   FloodFill(xz-i,yz+i,c);   {Установка координат точки начала и цвета заполнения}

   i:=i+5;                   {Шаг изменения координат центра окружностей}

 end;

{}

 ReadKey;  {Задержка выполнения программы до нажатия любой клавиши клавиатуры}

 CloseGraph                           {Закрытие графического режима}

end.

 

                Возможный результат работы программы

Введи через пробел координаты X, Y центра окружности:      320 240

Введи радиус окружности:                                   50

Введи код 0 -:-15 цвета линии окружности:                  15

Введи код 3 толстой линии или любой другой - тонкая линия: 1

Введи через пробел координаты X, Y точки  заполнения:      320 240

Введи 0 -:- 11 - код заполнения поверхности окружности:    1

Введи код 0 -:-15 цвета заполнения поверхности окружности: 5

 

                                                                                                                               Рис. 85.  Изображение “непрозрачного” цилиндра.

 

Для изображения “непрозрачного” конуса, следует изменять не только координаты центра окружности, но радиус окружности с каждой итерацией цикла, что и происходит при работе нижеприведенной программы.

 

Program V2L07P4; {Изображение конуса с невидимыми линиями}

Uses Crt, Graph;                      {Вызов библиотечных модулей}

Var Gd, Gm :integer;                  {Определение целых переменных}

x,y,r,c,i,t,xz,yz,st,cz :word;        {Определение целых переменных}

{}

begin

 ClrScr;                               {Стирание экрана}

 Write('Введи через пробел координаты X, Y центра окружности:      ');

 Read(x,y);

 Write('Введи радиус окружности:                                   ');Read(r);

 Write('Введи код 0 -:-15 цвета линии окружности:                  ');Read(c);

 Write('Введи код 3 толстой линии или любой другой - тонкая линия: ');Read(t);

 Write('Введи через пробел координаты X, Y точки  заполнения:      ');Read(xz,yz);

 Write('Введи 0 -:- 11 - код заполнения поверхности окружности:    ');Read(st);

 Write('Введи код 0 -:-15 цвета заполнения поверхности окружности: ');Read(cz);

{}

 Gd:=0;Gm:=0;                        {Значения графических драйвера и модуля}

 InitGraph(Gd,Gm,'c:\bp\bgi');       {Установка графического режима}

 if GraphResult<>0 then Halt(1);     {Проверка на ошибку инициализации}

 SetLineStyle(0,0,t);

 i:=0;                               {Начальное значение переменной цикла}

 while i<50 do                       {Цикл построения окружностей}

 begin

   SetColor(c-1);                    {Установка цвета линии окружности}

   Circle(x-i,y+i,r-i); {Построение окружности. С каждой итерацией цикла радиус уменьшается}

   SetFillStyle(st,cz); {Установка стиля и цвета заполнения поверхности окружности}

   FloodFill(xz-i,yz+i,c-1); {Установка координат точки начала и цвета заполнения}

{}

   SetColor(c);                      {Установка цвета линии окружности}

   Circle(x-i,y+i,r-i); {Построение окружности. С каждой итерацией цикла радиус уменьшается}

   SetFillStyle(st,cz);      {Установка координат точки начала и цвета заполнения}

   FloodFill(xz-i,yz+i,c);   {Установка координат точки начала и цвета заполнения}

   i:=i+5;                   {Шаг изменения координат центра окружностей}

 end;

{}

 ReadKey;  {Задержка выполнения программы до нажатия любой клавиши клавиатуры}

 CloseGraph                  {Закрытие графического режима}

end.

                Возможный результат работы программы

Введи через пробел координаты X, Y центра окружности:      320 240

Введи радиус окружности:                                   50

Введи код 0 -:-15 цвета линии окружности:                  15

Введи код 3 толстой линии или любой другой - тонкая линия: 1

Введи через пробел координаты X, Y точки  заполнения:      320 240

Введи 0 -:- 11 - код заполнения поверхности окружности:    1

Введи код 0 -:-15 цвета заполнения поверхности окружности: 5

 

                                                                                                                               Рис. 86.  Изображение “непрозрачного” конуса.

 

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

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

 

Program V2L07P5; {Изображение фигур с нелинейным изменением радиуса окружности}

Uses Crt, Graph;                     {Вызов библиотечных модулей}

Var Gd, Gm :integer;                 {Определение целых переменных}

x,y,r,c,t,xz,yz,st,cz :word;         {Определение целых переменных}

g,rn,rtf:real;

{}

begin

 ClrScr;                             {Стирание экрана}

 Write('Введи через пробел координаты X, Y центра окружности:      ');

 Read(x,y);

 Write('Введи радиус окружности:                                   ');Read(r);

 Write('Введи код 0 -:-15 цвета линии окружности:                  ');Read(c);

 Write('Введи код 3 толстой линии или любой другой - тонкая линия: ');Read(t);

 Write('Введи через пробел координаты X, Y точки  заполнения:      ');Read(xz,yz);

 Write('Введи 0 -:- 11 - код заполнения поверхности окружности:    ');Read(st);

 Write('Введи код 0 -:-15 цвета заполнения поверхности окружности: ');Read(cz);

{}

 Gd:=0;Gm:=0;                        {Значения графического драйвера и модуля}

 InitGraph(Gd,Gm,'c:\bp\bgi');       {Инициализация графического режима}

 if GraphResult<>0 then Halt(1);     {Проверка на ошибку инициализации}

 SetLineStyle(0,0,t);                {Установка типа линии окружности}

 g:=0.0;                             {Начальное значение переменной цикла}

 while g<180 do                      {Цикл построения окружностей}

 begin

   rn:=g*Pi/180;           {Пересчет градусной меры угла в радианную}

   rtf:=Abs(r*Sin(2*rn));  {Расчет радиуса как тригонометрической функции}

   SetColor(c-1);          {Установка цвета линии окружности}

   Circle(Round(x-g),Round(y+g),Round(rtf));   {Построение окружности}

   SetFillStyle(st,cz); {Установка стиля и цвета заполнения поверхности окружности}

   FloodFill(Round(xz-g),Round(yz+g),c-1); {Установка координат начала цвета заполнения}

{}

   SetColor(c);                         {Установка цвета линии окружности}

   Circle(Round(x-g),Round(y+g),Round(rtf));   {Построение окружности}

   SetFillStyle(st,cz);                 {Установка координат точки начала и цвета заполнения}

   FloodFill(Round(xz-g),Round(yz+g),c);       {Установка координат начала цвета заполнения}

   g:=g+2.5;                            {Шаг изменения координат центра окружностей}

 end;

{}

 ReadKey;  {Задержка выполнения программы до нажатия любой клавиши клавиатуры}

 CloseGraph                 {Закрытие графического режима}

end.

 

 


                Возможный результат работы программы

Введи через пробел координаты X, Y центра окружности:      320 240

Введи радиус окружности:                                   50

Введи код 0 -:-15 цвета линии окружности:                  15

Введи код 3 толстой линии или любой другой - тонкая линия: 1

Введи через пробел координаты X, Y точки  заполнения:      320 240

Введи 0 -:- 11 - код заполнения поверхности окружности:    1

Введи код 0 -:-15 цвета заполнения поверхности окружности: 5

 

 

        Рис. 87.  Изображение объемной фигуры,  радиус которой меняется по синусоидальному закону.

 

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

 

Контрольные  вопросы  и упражнения

  1. Что называется аксонометриями?
  2. Назовите правила построения пространственного изображения?
  3. Попробуйте вписать звездчатый многоугольник в N-лепестковую розу.
  4. Расскажите, как получить непрозрачное изображение примитивной объемной фигуры?
  5. Используя приемы, которые используются в программе V2L05P11, попробуйте “изобрести ” необычные объемные фигуры.

 

Для заметок, ответов на вопросы и упражнения

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Построение многоугольников и примитивных объемных фигур в полярной системе координат"

Методические разработки к Вашему уроку:

Получите новую специальность за 6 месяцев

Ректор

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

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

Занятие строятся таким образом, что после прослушивания теоретического материала (10 –15 мин.), учащимся предлагается несложное практическое задание, которое выполняется ими за 20 - 30 мин. и корректируется в процессе изучения материала в более сложную задачу по изучаемой теме,занятие иллюстрируется необходимым количеством задач по изучаемой теме и примеров программ их решения.

 

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 663 276 материалов в базе

Скачать материал

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 17.11.2014 1879
    • DOCX 137 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Анцыпа Валентина Алексеевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Анцыпа Валентина Алексеевна
    Анцыпа Валентина Алексеевна
    • На сайте: 9 лет и 5 месяцев
    • Подписчики: 0
    • Всего просмотров: 2033
    • Всего материалов: 1

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

HR-менеджер

Специалист по управлению персоналом (HR- менеджер)

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Использование нейросетей в учебной и научной работе: ChatGPT, DALL-E 2, Midjourney

36/72 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 619 человек из 77 регионов
  • Этот курс уже прошли 956 человек

Курс повышения квалификации

Особенности подготовки к сдаче ЕГЭ по информатике и ИКТ в условиях реализации ФГОС СОО

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 109 человек из 44 регионов
  • Этот курс уже прошли 577 человек

Курс профессиональной переподготовки

Теория и методика обучения информатике в начальной школе

Учитель информатики в начальной школе

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 96 человек из 34 регионов
  • Этот курс уже прошли 222 человека

Мини-курс

Детское развитие: ключевые моменты взаимодействия с детьми и подростками

3 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 307 человек из 68 регионов
  • Этот курс уже прошли 169 человек

Мини-курс

Управление личной продуктивностью менеджера

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе

Мини-курс

Творческие возможности в мире фотографии и медиа

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 416 человек из 71 региона
  • Этот курс уже прошли 47 человек